AWK将数字加到三个列中,仅返回一列

我需要添加三列,以 x 开头的列,然后仅返回包含三个数字之和的一列。其他行必须保持不变

我知道如何添加列,但仅靠x开头的数字我不知道该怎么做

awk '{ print $3 + $4 + $4}'

输入:

col1 col2 2344 4324 3544 col6 col7
col1 col2 x200 x300 x400 col6 col7
col1 col2 3543 5442 9403 col6 col7

结果:

col1 col2 2344 4324 3544 col6 col7
col1 col2 900 col6 col7
col1 col2 3543 5442 9403 col6 col7

gr364212028 回答:AWK将数字加到三个列中,仅返回一列

请您尝试以下。

awk '
$3~/^x/ && $4~/^x/ && $5~/^x/{
  sub(/^x/,"",$3)
  sub(/^x/,$4)
  sub(/^x/,$5)
  $3=$3+$4+$5
  $4=$5=""
}
1
'  Input_file | column -t

最后保留了column命令以用TAB分隔输出,如果希望以简单的空格格式输出,可以将其删除。

本文链接:https://www.f2er.com/3162635.html

大家都在问