2013-06-05 156 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