【问题标题】:Awk editing with field delimiter使用字段分隔符进行 awk 编辑
【发布时间】:2016-01-05 15:28:23
【问题描述】:

想象一下,如果你有这样的字符串 Amazon.com Inc.:181,37:184,22

然后你做awk -F':' '{print $1 ":" $2 ":" $3}' 然后它会输出同样的东西。

但是你能在这个例子中声明$2,让它只输出181而不是,37吗?

提前致谢!

【问题讨论】:

  • 我知道你可以在没有分隔符的情况下打印每个参数,但是在这个字符串上它不会有相同的输出:Cisco Systems Inc.:20,45:20,49

标签: awk


【解决方案1】:

您可以使用括号表达式更改字段分隔符,使其包含:,

awk -F'[:,]' '{ print $2 }' file

如果您担心, 可能会出现在第一个字段中(这会破坏这种方法),您可以使用split

awk -F: '{ split($2, a, /,/); print a[1] }' file

这会拆分逗号上的第二个字段,然后打印第一部分。任何其他包含逗号的字段都不受影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多