如何在文件中查找字符串,所述字符串包括换行符,“,@

如何在文件中查找字符串,所述字符串包括换行符,“,@

我知道 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

相关内容