如何组合 grep 命令的结果



我想在文件中grep一个字符串,并将所有结果合并到一行中,命令分开。

grep 1000/tmp/userfile

grep的输出,有时输出是2个衬里或更多。

用户12:X:1000:用户12,用户100,用户

200,用户300,用户400,用户500 用户13:X:1000:用户13,用户600,用户700,用户800,用户900,用户1000 用户14:X:1000:用户14,用户2600,用户2700,用户2800,用户2900,用户21000

我想要实现的是删除 user12:x:1000:user12、user13:x:1000:user13 和 user14:

x:1000:user14,然后将每个人与如下所示的命令分开。

用户100,用户200,用户300,用户400,用户500,用户

600,用户700,用户800,用户900,用户1000,用户2600,用户2700,用户2800,用户2900,用户21000

希望有人能帮我解决这个问题。谢谢。

grep 1000 /tmp/userfile | cut -d, -f2- | tr 'n' ',' | sed 's/,$//'

或者(实际上更好),正如 devnull 所建议的那样:

grep 1000 /tmp/userfile | cut -d, -f2- | paste -sd,
awk '/1000/ {string+=$0 ","} end {print substr(string,1,length(string)}' INPUTFILE

可能会做到。

在具有匹配1000的每一行上,将该行追加到字符串中,并添加逗号。最后打印没有最后一个逗号。

如果没有匹配的行,它将失败!

相关内容

  • 没有找到相关文章

最新更新