使用sed / awk /替换匹配的列

时间:2013-06-05 20:09:09

标签: shell sed awk

如何使用awk / sed或任何其他脚本命令实现此目的。

1)读取每行包含26位数的行的文件 2)使用shell脚本如果找到07,则仅在每行的第25和第26列中将07替换为08

三江源。

3 个答案:

答案 0 :(得分:2)

使用awk

awk  'BEGIN{FS=""; OFS=""}{if ($25$26 == "07") {$25="0"; $26="8"}{print}}'

答案 1 :(得分:1)

如果您确定文件中的每一行都有26位数字。 (长度26),你可以:

sed 's/07$/08/' file

答案 2 :(得分:1)

这可能适合你(GNU sed):

sed -r 's/^(.{24})07/\108/' file