这个删除空白行和重复行的 awk 脚本如何工作?

这个删除空白行和重复行的 awk 脚本如何工作?

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来删除重复的行。

相关内容