使用 awk 替换文本文件中的表元素

使用 awk 替换文本文件中的表元素

我在txt表中有一些数据:

Number        Column1        Column2
  1             abc            zxy
  7             tgh            lkj
  1             rfe            zpo

我想替换 lkj 位置的字符串(始终在第 3 列第 3 行)。不随意更换lkj。再举个例子思考:

    Number        Column1        Column2
  a             875            172
  a             457            357
  2             986            125

在这种情况下我想提取 357。第 3 列第 3 行。我正在尝试涉及列awk参数$3的操作,但我不知道还能做什么。有什么建议么?

答案1

如果您想保留良好的对齐方式,请使用awk函数sub

awk 'NR==3{sub($3, "string_to_replace")}1' infile.txt

否则,你可以使用下面的

awk 'NR==3{$3="string_to_replace"}1' infile.txt

NR==3意味着如果它是第三行,则进行替换,1始终为真条件并告诉awk打印该行(或者这是awk默认操作)

相关内容