【问题标题】:Combining fields in Awk在 awk 中组合字段
【发布时间】:2010-09-29 00:04:07
【问题描述】:

有没有一种简单的方法可以在 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

这对于第一行效果很好,但在第二行文本中的逗号处停止。

【问题讨论】:

  • 下面提供的答案将起作用。但是,如果可以,在您的示例中,您最好使用 tsv 之类的格式。这样您就不会混合字段内容和字段分隔符。

标签: awk


【解决方案1】:

也许:

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

【讨论】:

  • 德纳达。这不完全符合您的要求,但确实可以完成工作。 =)
【解决方案2】:

你可以使用 sed 来做到这一点。

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2022-08-04
    • 2018-10-02
    相关资源
    最近更新 更多