组合awk命令
我现在有一段代码:组合awk命令,awk,Awk,我现在有一段代码: read -p 'Enter the fruit you want to search: ' user_fruit awk -F ":" -v re="$user_fruit" '$4 ~ re' $fruit_file 它使用awk在$4中查找与用户在$user\u fruit文件中的$user\u fruit变量下提供的模式匹配的匹配项。但是,我需要修改awk命令,使其仅在单词apple也在线时显示行匹配 任何帮助都将不胜感激 可
read -p 'Enter the fruit you want to search: ' user_fruit
awk -F ":" -v re="$user_fruit" '$4 ~ re' $fruit_file
它使用awk在$4
中查找与用户在$user\u fruit
文件中的$user\u fruit
变量下提供的模式匹配的匹配项。但是,我需要修改awk命令,使其仅在单词apple
也在线时显示行匹配
任何帮助都将不胜感激 可以使用布尔运算符扩展awk模式:
read -p 'Enter the fruit you want to search: ' user_fruit
awk -F ":" -v re="$user_fruit" '/apple/ && $4 ~ re' "$fruit_file"
即,当记录匹配
/apple/
且第四个字段匹配正则表达式时,打印记录。如果要检查是否存在文本固定字符串,可以使用ise索引来代替正则表达式搜索:
read-p'输入要搜索的水果:'user\u fruit'
awk-F:“-v re=“$user_fruit””索引($0,“apple”)&索引($4,re)”文件
这里,
index($0,“apple”)
-检查整行上是否有apple
子字符串(如果其索引不是0
)
&&
-和
条件
索引($4,re)
-检查字段4中是否有apple
子字符串(如果其索引不0
)
见:
s='1:2:3:2-李子+梨
苹果:二:三:一李子+梨'
用户_水果=‘李子+梨’
awk-F:“-v re=“$user_fruit””index($0,“apple”)&&index($4,re)@Sundeep感谢您的宝贵输入,并对忘记的链接表示抱歉:)