是否可以轻松地在awk中组合字段?具体来说,我有这样的行:

1,2,some text
3,4,some text, but it has commas in it, annoyingly

我想将两个数字作为前两个字段提取,但后来我希望所有文本(逗号和所有)都是第三个字段。有没有办法做到这一点?

我的基本awk电话是这样的:

awk -F\, '{print $1"|"$2"|"$3}' file.txt

对于第一行可以正常工作,但在第二行的文本中停留在逗号处。

有帮助吗?

解决方案

也许:

awk '{for (i=0;i<2;i++) sub(",", "|", <*>); print}' file.txt

其他提示

您可以使用sed来完成它。

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top