我有一个文件,其中一行以
Version:
开头。我试图从 shell 中检测这样的行内容,最后我使用了
grep 'Version:' filename
但之前,我尝试使用
sed
读取命令但没有成功。
sed '/Version:/r' filename
sed: -e expression #1, char 11: missing filename in r/R/w/W commands
为什么我会收到此错误消息?我做错了什么?
r
命令的语法需要一个参数。这可能根本不是您想要做的,而是命令
sed '/Version/r /tmp/foo' filename
会将
/tmp/foo
的内容插入到 /Version/
中与 filename
匹配的任何行之前,并将结果输出到标准输出。
换句话说,
sed
已经知道如何读取输入文件,就像grep
一样; r
命令允许您提取 附加 文件的内容。
要简单地打印匹配行(而不是其他行),
sed
语法将是
sed -n '/Version/p' filename
其中
-n
选项禁用每行的默认打印,而 p
命令表示打印与条件匹配的行。