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.txtgrep-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