这是一种方法awk
:
以您的示例为例,如果您想替换第一行的第三个字段:
awk 'BEGIN{FS=OFS=":"} {if (NR==1) {$3 = "XXXX"}; print}' input_file
输入:
AAAAA:BB:CCC:EEEE:DDDD
FF:III:JJJ:KK:LLL
MMMM:NN:OOO:PP
输出:
AAAAA:BB:XXXX:EEEE:DDDD
FF:III:JJJ:KK:LLL
MMMM:NN:OOO:PP
解释:
awk
: 调用 awk 命令
'...'
: 单引号括起来的所有内容都是 awk 的指令
BEGIN{FS=OFS=":"}
::
用作输入和输出的分隔符。FS
代表字段分隔符。OFS
代表输出字段分隔符。
if (NR==1) {$3 = "XXXX"};
: 如果NR
到目前为止读取的记录数 ( ) 为 1,则将第三个字段 ( $3
) 设置为 " XXXX
"。
print
: 打印当前行
input_file
:输入文件的名称。
相反,如果您尝试完成的只是将文件中所有出现的 替换为CCC
,XXXX
只需执行以下操作:
sed -i 's/CCC/XXXX/g` input_file
请注意,这也将替换部分匹配项,例如ABCCCDD
->ABXXXXDD