Linux中grep命令实现带有通配符.关键字符的精准匹配
Linux中grep命令实现带有通配符.关键字符的精准匹配
001、
[b20223040323@admin2 test]$ ls a.txt [b20223040323@admin2 test]$ cat a.txt ## 测试文件 new_seq KRA6 Karakaya new_seq ssKR.6j Karagul 65_wild KR.6 Asiatic_mouflon_unknown [b20223040323@admin2 test]$ var=KR.6 ## 定义一个变量 [b20223040323@admin2 test]$ grep $var a.txt ## 对变量直接搜索,.被认为是任意字符 new_seq KRA6 Karakaya new_seq ssKR.6j Karagul 65_wild KR.6 Asiatic_mouflon_unknown [b20223040323@admin2 test]$ grep -F $var a.txt ## 使用-F参数,表示按照原始字符串搜索,但是却无法使用空格和制表符界定边界了 new_seq ssKR.6j Karagul 65_wild KR.6 Asiatic_mouflon_unknown [b20223040323@admin2 test]$ grep -F $var a.txt | grep "[[:space:]]$var[[:space:]]" ## 在搜索原始字符串的基础上,利用管道再次界定边界 65_wild KR.6 Asiatic_mouflon_unknown
。
补充:
[b20223040323@admin2 test]$ grep -F "[[:space:]]$var[[:space:]]" a.txt ## 这种写法什么也匹配不到 [b20223040323@admin2 test]$
。