Bash 用引号或大括号保留文件中的所有行?

Bash 用引号或大括号保留文件中的所有行?,bash,sed,Bash,Sed,快速提问,但我想知道,如果给定一个输入文件,我怎么能几乎只保留文件中包含{,},“”的行。我所做的是搜索如何删除不包含特定模式的所有行,并最终使用sed执行类似操作: sed'/{\|}/!d'news.txt>asd.txt 这最终只保留包含{或}的行,但我在添加带有“的整个保留行时遇到了问题。我试着做: sed'/{\\\/}/!d'news.txt>asd.txt 但这会导致出现不匹配的} 关于如何将“包含在此sed语句中,您有什么想法吗 谢谢大家! 这将使用sed仅打印所需的行: sed

快速提问,但我想知道,如果给定一个输入文件,我怎么能几乎只保留文件中包含
{
}
”的行。我所做的是搜索如何删除不包含特定模式的所有行,并最终使用sed执行类似操作:

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

这最终只保留包含
{
}
的行,但我在添加带有
的整个保留行时遇到了问题。我试着做:

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

但这会导致出现不匹配的
}

关于如何将
包含在此sed语句中,您有什么想法吗


谢谢大家!

这将使用sed仅打印所需的行:

sed -n '/[{}"]/p' news.txt
这与grep相同:

grep '[{}"]' news.txt
这与此相同,但颠倒了逻辑:它不打印匹配行,而是删除非匹配行:

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

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

这将使用sed仅打印所需的行:

sed -n '/[{}"]/p' news.txt
sed '/{\|}\|"/!d' news.txt > asd.txt
这与grep相同:

grep '[{}"]' news.txt
这与此相同,但颠倒了逻辑:它不打印匹配行,而是删除非匹配行:

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

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

grep-e'{'-e'}'-e''news.txt>asd.txt
?是的,很完美。感觉grep会更容易使用,但在网上找不到任何相关字符。谢谢!GNU grep的较短版本:
grep-e'{}124;”'news.txt>asd.txt
shorter-shorter-version:grep'[{}]'news.txt>asd.txt
grep-e'{'-e'}'-e''news.txt>asd.txt
?很好。我觉得grep会更容易使用,但在网上找不到任何相关的。谢谢GNU grep的较短版本:
grep-E'{{}}}}''news.txt>asd.txt
较短版本:grep'[{}]'news.txt>asd.txt
sed '/{\|}\|"/!d' news.txt > asd.txt