grep查找文件內容單雙引號用法的區別


1、單引號:全引用。shell命令不做轉義處理。

2、雙引號:部分引用。shell命令會做轉義處理。優先解析命令和變量。

3、不加引號:效果等同於雙引號的作用,優先解析命令和變量。

需要轉義的特殊字符:\,$等

1、查找特殊字符舉例:

1.1、查找\字符

grep '\\' test.log  # 單引號全引用,shell不做轉義處理;\\———shell——\\——grep——\——>查找 
# \\ shell不做轉義處理傳遞給grep,grep做轉義處理為\,拿去查找\字符
grep "\\\\" test.log # 雙引號部分引用,shell做特殊字符的轉義處理;\\\\———shell——\\——grep——\——>查找 
# \\\\ shell做轉義處理為\\傳遞給grep,grep做轉義處理為\,拿去查找\字符

1.2、查找$字符

grep '\$' test.log  # 單引號全引用,shell不做轉義處理;
# \$ shell不做轉義處理傳遞給grep,grep做轉義處理為$,拿去查找$字符
grep "\\$" test.log # 雙引號部分引用,shell做特殊字符的轉義處理;
# \\$ shell做轉義處理為\$傳遞給grep,grep做轉義處理為$,拿去查找$字符

 

2、查找單雙引號舉例:

2.1、查找單引號'name'

grep "'name'" test.log
# 如果用單引號方式去查找,無論外面嵌套多少層單引號,都只能匹配出name,而不是'name'

2.2、查找雙引號"age"

grep '"age"' test.log
# 如果用雙引號方式去查找,無論外面嵌套多少層雙引號,都只能匹配出age,而不是"age"

對於單雙引號同時存在需要匹配的情況下,比較簡單粗暴的處理方式就是用單引號方式查找,查找字符里的單雙引號均用.(點號)去匹配。

grep '.name.' test.log
grep '.age.' test.log

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM