嗨我正在尋找通過文件進行搜索,並輸出與下面的正則表達式相匹配的行的值與刪除匹配的文本,我不需要它輸出到一個文件。這是我目前使用的,它是輸出所需的文本,但多次:使用多個sed命令
#!/bin/sh
for file in *; do
sed -e 's/^owner //g;p;!d ; s/^admin //g;p;!d ; s/^loc //g;p;!d ; s/^ser //g;p;!d' $file
done
的首選格式將是這樣的,所以我可以擁有控制權發生了什麼其間:
for file in *; do
sed 's/^owner //g;p' $file | head -1
sed 's/^admin //g;p' $file | head -1
sed '/^loc //g;p' $file | head -1
sed '/^ser //g;p' $file | head -1
done
一個示例的輸入文件是以下各項:
owner sys group
admin guy
loc Q-30934
ser 18r9723
comment noisy fan is something
和所需的輸出如下:
sys group
guy
Q-30934
18r9723
感謝您的回答,我試過這個:sed's/^ owner // g; q'$ file,它在第一個sed命令之後工作,但之後的sed命令只輸出文件的第一行而不合並 –
這幾乎是正確的。我已經爲我的答案添加了一個示例。編輯完成後,它會在一兩分鐘後出現。簡而言之,s和q命令是獨立的,所以q在第一行執行。你需要用括號將它們組合在一起。 –
非常感謝你! –