2013-06-05 114 views
1
替换匹配列

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

1)读取与包含在每一行 2)使用外壳脚本26个数字多行文件仅在每一行的第25和26列08与07替换07,如果发现

三江源。

+0

如何被列在同一行分离,白色空间? – ryanbwork

回答

2

随着awk

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

我不知道我可以指定FS =“”。谢谢。 – irappa

1

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

sed 's/07$/08/' file 
+0

谢谢肯特。有没有一个通用的方式来做到这一点。假设我指定了列并将数字替换为脚本的参数。 – irappa

+0

@irappa是的,你可以试试'sed -r's /(。{24})07(。*)/ \ 108 \ 2 /''如果要求是这样,我会用sed来做。 – Kent

1

这可能为你工作(GNU SED):

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