[英]Prevent sed from outputting rest of file
我正在使用sed
提取文件中2个字符串之间的内容。 我在用:
sed 's/^.*bbb //; s/ddd.*$//' '/Users/myName/Desktop/sedtest.txt'
该文件包含:
aaa bbb ccc ddd eee
more random text
…
当我使用上面的sed命令时,它成功提取了ccc
但它也输出以下行。 它输出:
ccc
more random text
…
但我只希望它输出:
ccc
如何修改命令,使其仅输出ccc
? 此外,我不会在运行时知道bbb
和ddd
之间是ccc
尝试这个:
grep bbb yourfile | grep ddd | sed yourcommand
那只会在包含“ bbb”和“ ddd”的行上起作用。
sed时无需束缚自己就可以轻松完成。
sed 's/^.*bbb\(.*\)ddd.*$/\1/;t a;d;:a' /Users/myName/Desktop/sedtest.txt
这个awk
应该做的:
awk '/bbb.*ddd/ {gsub(/.*bbb | ddd.*/,x);print}' file
ccc
它仅使用bbb
和ddd
选择行。 然后从bbb
和ddd
删除所有
sed 's/^.*bbb\(.*\)ddd.*$/|\1|/' /tmp/file.txt | grep '^|' | cut -d\| -f2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.