将2个sed命令合并为1

时间:2014-12-25 10:35:17

标签: sed

有没有办法在单个sed命令中执行以下操作来提高性能?

cat some_file | sed -n '/^MODIFIED/p' | sed 's/^MODIFIED\s*//g'

3 个答案:

答案 0 :(得分:1)

您可以尝试以下sed命令。 -np有助于打印替换所在的那些行。 [[:space:]]* POSIX表示法,它匹配零个或多个空格。

sed -n 's/^MODIFIED[[:space:]]*//p' some_file

OR

sed -n 's/^MODIFIED\s*//p' some_file

示例:

$ cat ri
MODIFIED  foo bar
apple
mango
$ cat ri | sed -n '/^MODIFIED/p' | sed 's/^MODIFIED\s*//g'
foo bar
$ sed -n 's/^MODIFIED[[:space:]]*//p' ri
foo bar

答案 1 :(得分:0)

你可以删除cat和sed,只需使用最后一个sed,如:

sed -nr 's/^MODIFIED\s*//p' some_file

答案 2 :(得分:0)

以下是awk版本:

awk 'gsub(/^MODIFIED\s*/,"")' file

示例:

cat file
test
MODIFIED data
more MODIFIED home

awk 'gsub(/^MODIFIED\s*/,"")' file
data