【问题标题】:Splitting columns using awk [duplicate]使用 awk 拆分列 [重复]
【发布时间】:2018-10-23 03:01:52
【问题描述】:

您好,我尝试使用 awk 命令拆分列,其中我必须使用两个单独的字符来拆分同一列“逗号和冒号”

如果我的输入文件是这样的

 0/1:121,313:4:99:123,0,104

我用 : 来拆分列

echo "0/1:121,313:4:99:123,0,104" | awk '{split($0,a,":"); print a[2] a[3]}

我得到这个输出

121,3134

但是我只需要这个输出

121313

如何同时使用 : 和 ,(冒号和逗号)进行分隔

我不想使用awk -F 命令,因为这是我正在处理的较大制表符分隔的文本文件的一部分。

【问题讨论】:

  • 某处有重复...将尝试搜索...答案是使用正则表达式字符类
  • 如果您需要使用 split 而不是 -F 出于未提及的原因,请将 ":" 更改为 /[,:]/
  • 感谢 Sundeep。您可以将答案放在答案部分,以便答案清晰可见。
  • @RonicK 我没有回答,因为此类问题已作为重复问题关闭..

标签: awk


【解决方案1】:
awk -F '[,:]' '{ print $2 $3 }' file

通过将字段分隔符(通过-F)设置为“,:”,我们可以避免对数据执行显式split()

或者,

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

另外使用一个空的输出字段分隔符。

【讨论】:

  • 是的,我删除了我的不回答公然重复的问题
  • 如何在文件中更新
猜你喜欢
  • 2017-08-25
  • 1970-01-01
  • 2015-08-22
  • 2013-03-04
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 2014-12-16
相关资源
最近更新 更多