![这个删除空白行和重复行的 awk 脚本如何工作?](https://linux22.com/image/146329/%E8%BF%99%E4%B8%AA%E5%88%A0%E9%99%A4%E7%A9%BA%E7%99%BD%E8%A1%8C%E5%92%8C%E9%87%8D%E5%A4%8D%E8%A1%8C%E7%9A%84%20awk%20%E8%84%9A%E6%9C%AC%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
该awk
命令用于删除空白行和重复行:
sort abc.log | awk 'LAST != $0 {print} {LAST=$0}'
我想知道如何使用“LAST != $0”和“{LAST=$0}”以及它们的作用是什么?
答案1
该sort
命令对 的行进行排序abc.log
。结果是重复的行彼此相连。
awk
将此排序的文件作为输入。它将当前行(位于 中 $0
)与变量的内容进行比较LAST
。仅当不同 ( !=
) 时,才会打印该行。当前行的内容存储在变量中LAST
。所以可以在下一次迭代中进行比较。
注意:不要使用sort
和的这种组合awk
,只需使用sort -u abc.log
来删除重复的行。