嗨我正在寻找通过文件进行搜索,并输出与下面的正则表达式相匹配的行的值与删除匹配的文本,我不需要它输出到一个文件。这是我目前使用的,它是输出所需的文本,但多次:使用多个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在第一行执行。你需要用括号将它们组合在一起。 –
非常感谢你! –