check="a1++"
awk -F":" -v name="$check" 'tolower($2)~ tolower(name)' file.txt
awk 在处理“++”字符串时似乎存在一些问题。它无法检索文件中的值。但是,我尝试更改 check="44b"
它似乎工作得很好
apple:44b:Vietnam
orange:A1++ approved:China
jelly:-34:Malaysia
pear:98:Malaysia
文件.txt
最佳答案
正如 Glenn Jackman 在评论中提到的,您应该使用 index
而不是 ~
,因为 +
是正则表达式元字符。
如果您使用++
,那么orange:A123roved:China
也会匹配...
你可以这样做:
$ awk -F: -v name="$check" 'index(tolower($2), tolower(name))' file
关于bash - awk 无法忽略 "++",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986532/