【问题标题】:Count number of instances of a character and use it in a condition计算一个字符的实例数并在条件中使用它
【发布时间】:2019-04-19 04:37:48
【问题描述】:

我有一个 csv 文件 (t.txt),其中有些行有 7 个逗号,有些行有 8 个 如果该行有 8 个逗号,我想删除该行中的第二个逗号。

有什么建议吗?我一直在努力

if [[awk -F "," '{print NF-1}' == 8]]; then sed 's/\,//2'; t.txt

【问题讨论】:

  • 欢迎来到 SO,始终建议您在 CODE TAGS {} 按钮的帖子中添加输入和预期输出示例,您现在可以这样做。

标签: awk replace conditional-statements


【解决方案1】:

由于您没有提供 Input_file 的示例或预期的输出,因此无法测试,请您尝试以下操作。

echo "a,a,a,d,f,g,h,h,f" |
awk '
 match($0,/,[^,]*/){
   print substr($0,1,RSTART-1) substr($0,RSTART,RLENGTH) substr($0,RSTART+RLENGTH+1)
   next
}
1'

a,aa,d,f,g,h,h,f

如果您也想检查 8 个逗号条件,请将 match 替换为 match($0,/,[^,]*/) && NF==9 到上面的代码中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多