Text 替换包含特定字符串的行中基于列的值

Text 替换包含特定字符串的行中基于列的值,text,awk,Text,Awk,我有一个文本文件: file_11199_name 45 69 file_11176_name 45 69 file_11156_name 45 69 其中,当第一列的字符串中有“11199”时,我想将第三列的值更改为1。接下来的3行AWK代码似乎可以满足您的需要: {c=$3} $1~11199{c=1} { print $1,$2,c } 第1行为变量(c)指定第三列的值。 如果第一个变量包含11199($1~11199),第2行将值1赋给c) 第3行打印输出 $ awk '

我有一个文本文件:

file_11199_name  45  69
file_11176_name  45  69
file_11156_name  45  69

其中,当第一列的字符串中有“11199”时,我想将第三列的值更改为1。

接下来的3行AWK代码似乎可以满足您的需要:

{c=$3}
$1~11199{c=1}
{ print $1,$2,c }
第1行为变量(c)指定第三列的值。 如果第一个变量包含11199(
$1~11199
),第2行将值1赋给
c
) 第3行打印输出

$ awk '{c=$3}$1~11199{c=1}{ print $1,$2,c }' file
file_11199_name 45 1
file_11176_name 45 69
file_11156_name 45 69

欢迎来到SO,on,SO,我们鼓励用户展示他们为解决自己的问题所付出的努力,因此请在您的问题中添加您的努力,然后让我们知道。