【发布时间】:2018-08-30 12:54:14
【问题描述】:
我正在尝试过滤一些邮件日志,我需要从某些不总是相同的列中获取一些特定信息。信息可以在每行的不同列上。我总是使用 awk 只打印我想要的列,例如:
cat file.log | awk '{print $1" "$2" "$3}' >> output.txt
但在这种情况下,我不知道哪一列包含我要查找的字符串。
我在其中查找包含字符串“5”的列的示例 file.log:
A B C 222 586 999 724 644
A B C 510 333 987 678 633
A B C 348 488 920 566 240
我想要的结果:
A B C 586
A B C 510
A B C 566
感谢任何帮助
【问题讨论】:
-
如果你可以考虑
perl,那么你可以考虑$perl -pe "s/^(\D+).*\b(5\d*).*/$1$2/" your_file.txt