繁体   English   中英

防止sed输出其余文件

[英]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 此外,我不会在运行时知道bbbddd之间是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

它仅使用bbbddd选择行。 然后从bbbddd删除所有

sed 's/^.*bbb\(.*\)ddd.*$/|\1|/' /tmp/file.txt | grep '^|' | cut -d\| -f2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM