Files
一次性替換或修改文件內容
我有一個文件,我需要為每個帳戶修改一些行。
我需要修改的行如下所示:
PstlInfo <some content> NNYYYN
(每個賬戶都會有這條線)現在對於我需要修改的每個帳戶的
NNYYNN (always Y or N only 6 positions)
位置開始,150
上面的行開頭PstlInfo
如下
PstlInfo <some content> NNNNNN
(無論上面的行我需要設置為NNNNNN
)每次我通過在
vi
編輯器中打開文件手動執行此操作時,我都想更改從位置開始的唯一內容150
(僅限 5 個位置)。如果帳戶很少,則很容易修改,否則這是非常繁瑣的工作,有什麼方法可以一次修改文件,其中行開頭
PstlInfo
我看到您正在使用 AIX。它有一個
sed
命令應該能夠執行以下操作:sed '/^PstlInfo/s/^\(.\{150\}\)[NY]\{6\}/\1NNNNNN/' <yourfile >newfile
這將在開頭的行上替換由 NNNNNN
PstlInfo
組成的任何 6 個字元(由 N 或 Y ([NY]\{6\}
) 組成,位於^.\{150\}
從行首開始的 150 個字元 () 處)。這 150 個字元被複製 (\(...\)
) 並在替換字元串 (\1
) 中恢復。