【发布时间】:2021-05-05 18:10:55
【问题描述】:
我正在尝试使用 awk 打印与存储在变量 $file_log 中的文件中特定数据列 ($4) 中的模式匹配的任何匹配项。比赛也必须是部分的和不区分大小写的。这是文件数据。
Protocol Packets Bytes SourceIP
TCP 120 1000 EXT_SERVER
TCP 33 230 EXT_SERVER
UDP 260 157 100012_SERVER
ICMP 340 89 100012_SERVER
因此,如果用户在以下代码中提供“ex”的输入,则输出将显示 $4 列下所有带有 EXT_SERVER 的行。
read -p 'Type the Source IP code you wish to search for: ' src_ip_choice
这是我到目前为止所拥有的,但是没有输出,即使肯定有与我输入的模式匹配的数据......
read -p 'Type the Source IP code you wish to search for: ' src_ip_choice
if grep -i -q "$src_ip_choice" "$specified_log"; then
awk -F',' '$4~/$src_ip_choice/' $specified_log
else
echo "The Source IP code you entered cannot be found within $specified_log"
附:我知道 $4 列不需要指定为 'EX' 无论如何只出现在 $4 中。但是,这是一项要求。
任何帮助将不胜感激!
【问题讨论】:
-
请阅读how-do-i-find-the-text-that-matches-a-pattern 以了解您的问题的问题,然后将“模式”一词替换为您问题中出现的任何地方的 regexp-or-string 和 full-or-partial 并包括 regexp要匹配“模式”中的元字符,以便我们可以看到您希望如何处理(例如,
src_ip_choice中的e.是否应与来自ext的ex和来自server的er匹配? )
标签: awk