2009-04-08 17 views
0

因此,我有固定長度線的這個大文件。我想做一個查找並替換一個字符行的位置。正則表達式在固定長度文件中查找/替換

例子:

xxxxxxx  010109 xxxxxx xxxxx 
xxxxxxx  010309 xxxxxx xxxxx 
xxxxxxx  021506 xxxxxx xxxxx 
xxxxxxx  041187 xxxxxx xxxxx 

因此,在這種情況下,我想找到任何價值的流通位置18開始在第13位,取而代之的是010107.

誰能給幫助我如何爲此制定正則表達式?

非常感謝。

回答

1

編輯:測試後,記事本++不支持定義一個確切的數字的{N}方法的字符

這可以工作,在您的數據上測試:

查找:

^(............)...... 

替換:

\1010107 
+0

+1使它在Notepad ++中起作用。 – 2009-04-08 18:47:51

0

嘗試這個搜索模式:

^(.{12})\d{6} 

並將此作爲替換表達式:

\1010107 
0

S/^(?:{12})({6})(?:*)$/NNNNNN/

替換NNNNNN由所需數目

0

像這樣:

 
sed 's/^\(.\{12\}\).\{6\}\(.*\)$/\1010107\2/' 

應該做的伎倆(逃脫命令行使用)

0

只是爲了記錄,你不需要像這樣的正則表達式。一個簡單的拆分或者某種解壓縮函數就可以。