保留带引号或花括号的文件中的所有行?

时间:2016-07-15 22:35:37

标签: bash sed

快速问题,但是想知道如果给出一个输入文件,我几乎可以保留包含{}"的文件中的行。我所做的是搜索如何删除所有不包含某种模式的行,并最终使用sed做这样的事情:

sed '/{\|}/!d' news.txt > asd.txt

这最终只会保留包含{}的行,但我也无法在"添加整个保留行。我试过了:

sed '/{\|/}\}"/!d' news.txt > asd.txt

但这导致了无与伦比的}

关于如何将"包含在此sed语句中的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

这使用sed只打印你想要的行:

sed -n '/[{}"]/p' news.txt

这与grep:

相同
grep '[{}"]' news.txt

这样做但反转了逻辑:它不是打印匹配的行,而是删除不匹配的行:

sed '/[{}"]/!d' news.txt

在所有情况下,[...]用于匹配方括号内的任何字符。

答案 1 :(得分:2)

sed '/{\|}\|"/!d' news.txt > asd.txt