测试人社区

Linux-sed 标签+N命令+替换

awk '{print $1}' nginx.log | sed ':1;N;s/\n/|/g;t1'

下面是我对这条命令的理解,不知是否正确?

awk先默认以空格为区隔符打印nginx.log文件中所有行的第一列({print $1}),并通过管道输出(|)。sed先将第二行合并到第一行(N;),将换行符(\n)替换为"|"(s/\n/|/g),再跳转(;t1)到名字为1的标签(:1;),重复执行将下一行追加到第一行并把换行符替换为"|"的操作