您当前的位置: 首页 > 技术文章 > 前端开发

Linux拓展之使用grep搜索时的特殊转义符号

作者: 时间:2023-10-08阅读数:人阅读

引入

假如有如下文本:test.txt

\\
\
'
"
$
|
^

使用 grep 命令直接搜索结果如下:

grep '\' test.txt

在这里插入图片描述所以对于一些特殊字符,需要进行转义,用符号 \ 来对别的字符进行转义。

查找 \\

# '\' 字符是对 '\' 字符的转义,所以有四个 '\' 字符
grep '\\\\' test.txt
# fgrep 会对特殊字符解释成普通字符
fgrep '\\' test.txt 

注:fgrep 命令会将特殊字符解释成普通字符。

查找 \

grep '^\\$' test.txt

查找 '

# 将单引号包裹在双引号中
grep "'" test.txt
# \ 字符是对 ' 的转义
grep \' test.txt
# 单引号字符 ' 并不属于正则表达式的元字符,所以 fgrep 命令无效
fgrep "'" test.txt
fgrep \' test.txt

查找 ''

# 用一对单引号把一个双引号包起来
grep '"' test.txt
# 用 \ 对双引号进行转义
grep \" test.txt
# 用 \ 对双引号进行转义,尽管也被双引号起来了
grep "\"" test.txt

查找 $

# 用单引号引起来,使用 \ 进行转义
grep '\$' test.txt 
# 用双引号引起来,使用 \ 转义 $ 字符,然后还需要一个 \ 转义 \ 本身
grep "\\$" test.txt
# 不需要引号,使用 \ 转义 $ 字符,然后还需要一个 \ 转义 \ 本身
grep \\$ test.txt
# 由于 $ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep '$' test.txt
# 由于 $ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep "$" test.txt
# 由于 $ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep $ test.txt

查找 |

# 用单引号引起来
grep '|' test.txt
# 用双引号引起来
grep "|" test.txt
# 因为 | 属于管道符在 Linux 中,所以如果不加引号,需要使用 \ 进行转义
grep \| test.txt
# 使用 fgrep 命令也可以直接搜索,但需要加引号
fgrep "|" test.txt
# 使用 fgrep 命令也可以直接搜索,但需要加引号
fgrep '|' test.txt

查找 ^

# 由于 ^ 属于正则表达式的元字符,所以使用 grep 命令搜索时需要进行转义,用引号引起来
grep "\^" test.txt
# 由于 ^ 属于正则表达式的元字符,所以使用 grep 命令搜索时需要进行转义,但没有加引号,所以需要再加一个 \ 字符转义它本身 \
grep \\^ test.txt
# 由于 ^ 属于正则表达式的元字符,所以使用 grep 命令搜索时需要进行转义,用引号引起来
grep '\^' test.txt
# 由于 ^ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep ^ test.txt
# 由于 ^ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep '^' test.txt
# 由于 ^ 属于正则表达式的元字符,可以让 fgrep 命令解释其本身含义,无论是否使用引号
fgrep "^" test.txt

总结

  • 对于属于正则表达式元字符的字符,推荐使用 fgrep 命令,它会解释成字符本身的含义。
  • 对于查找引号,如果是单引号,则用双引号包起来查找;如果是双引号,则用单引号包起来查找。
  • 对于不属于正则表达式元字符的字符,可以使用单引号或者双引号包起来查找,也可以不使用引号然后使用 \ 进行转义然后查找。

注:关于 grep 可参考:Linux命令之查找字符串grep;关于 fgrep 可参考:Linux命令之查找文件中符合条件的字符串fgrep

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:licqi@yunshuaiweb.com

加载中~
如果您对我们的成果表示认同并且觉得对你有所帮助可以给我们捐赠。您的帮助是对我们最大的支持和动力!
捐赠我们
扫码支持 扫码支持
扫码捐赠,你说多少就多少
2
5
10
20
50
自定义
您当前余额:元
支付宝
微信
余额

打开支付宝扫一扫,即可进行扫码捐赠哦

打开微信扫一扫,即可进行扫码捐赠哦

打开QQ钱包扫一扫,即可进行扫码捐赠哦