我知道 grep 允许我在文件中搜索字符串,但是我找不到正确的方法来搜索以下字符串:
"snapshot3" : {
"@custom_name" : true
所以我要查找的字符串包含一个换行符、引号、@ 符号...
知道如何在文本文件中准确查找此字符串吗?!或者,如果我可以搜索只有 2 或 3 个单词将“snapshot3”与“true”分隔开的文件,那么对我来说就足够了
答案1
一种方法是将字符串存储在变量中,然后使用grep -z
(-z
本质上将grep
文件视为一个大字符串)在文件中搜索它:
$ read -r -d '' var<<'EOF'
"snapshot3" : {
"@custom_name" : true
EOF
$ grep -Fz "$var" file
另一种方法是构建与该字符串匹配的正则表达式。例如:
grep -zP '\s*"snapshot3" : {\n\s*"@custom_name" : true' file