匹配模式并通过替换旧值来分配新值

时间:2018-05-15 03:18:18

标签: linux bash shell

name                 : Annie
CUSTOMER_ID          : 1111111

name                 : Marlon
CUSTOMER_ID          : 2222222

这是一个名为Sample.txt的文本文件。在这里,我想搜索customer_id并将内容1111111和2222222替换为123456。因此,Sample.txt中的预期输出应该是格式。

name                 : Annie
CUSTOMER_ID          : 123456

name                 : Marlon
CUSTOMER_ID          : 123456

1 个答案:

答案 0 :(得分:-1)

关注awk可能对您有帮助。

awk '/CUSTOMER_ID/{$NF="123456"} 1'  Input_file

<强> 说明: /CUSTOMER_ID/:在Input_file的当前行中搜索字符串CUSTOMER_ID,如果找到,则在{}大括号中执行操作提及。 $NF="123456":根据OP的要求,将$NF当前行值的最后一个字段分配给1234561awk处理条件然后操作的方法,所以在此处提及1我将条件设置为TRUE并且不提及任何操作,因此默认情况下会打印当前行。

如果您想将输出保存到Input_file本身,请使用:

awk '/CUSTOMER_ID/{$NF="123456"} 1' Input_file > temp_file && mv temp_file Input_file