这是一种方法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