2013-12-17 54 views
1

我有一個固定寬度的文件,我想爲每個記錄添加一個特定的字符到文件的特定位置。固定文件意味着我的列是沒有用任何分隔符分隔。每列都有一個指定的寬度。 假設下面的文件,我有:在Unix中爲每個記錄的文件的特定位置添加一個字符

129876 Amit  h-no-344 Gurgaon 
687  Rahul h-no-2798 Bangalore 
5789  Soumyajith-no-33467 Hyderabad 

我想補充兩個空白字符(例如:」「)第19位,讓每一個記錄的長度現在將增加2

+0

歡迎來到SO。您能否告訴我們您的具體問題,以及您已經嘗試了什麼,以及爲什麼它不起作用? –

回答

4
sed -r 's/.{18}/& /' file 
+1

sed's /./&/18'file.txt命令正常工作 – user3111130

0

您可以使用此:

$ awk 'BEGIN{FS=OFS=""} {$19=" "$19} 1' file 
129876 Amit  h-no-344 Gurgaon 
687  Rahul  h-no-2798 Bangalore 
5789  Soumyajit h-no-33467 Hyderabad 

通過設置BEGIN{FS=OFS=""},每n個場是第n個字符。因此,第19個可替換爲{$19=" "$19}。然後1被評估爲true,所以{print $0}被執行,打印該行。

+0

我已經嘗試了上述命令指定,這不適合我。 – user3111130

+0

Uhms,你得到了什麼? – fedorqui

+0

awk'BEGIN {FS = OFS =「」} {$ 19 =「」$ 19} 1'file.txt awk:第1行附近的語法錯誤 awk:在第1行附近出現一些語法錯誤。 – user3111130

相關問題