Sha*_*ter 8 grep text-processing quoting
我需要查找文件中是否有任何行以**.
我不知道该怎么做,因为它*被 shell 解释为通配符。
grep -i "^2" test.out
Run Code Online (Sandbox Code Playgroud)
如果该行以 2 开头但有效
grep -i "^**" test.out
Run Code Online (Sandbox Code Playgroud)
显然不起作用。
(我还需要知道该行是否以 a 结尾,)但还没有尝试过)。
Ste*_*ris 19
使用\字符转义 * 使其成为普通字符。
grep '^\*\*' test.out
Run Code Online (Sandbox Code Playgroud)
还要注意单引号'而不是双引号"以防止外壳扩展事物
由于您想检查以 开头**和结尾的行),您可以grep像这样组合两个操作,
grep '^*\*' test.out | grep ')$'
Run Code Online (Sandbox Code Playgroud)
或者使用这样的单个grep命令,
grep -E '^\*\*.*\)$' test.out
Run Code Online (Sandbox Code Playgroud)
解释
^\*\* : 匹配行以 **.* : 匹配之后的所有内容 **\)$: 匹配行也有)在行尾。