2014-05-08 45 views
0

我有以下內容的文件(I放置3行例如):的毗連字符串轉換成文件

12743002785468 |MOVIL APPLE IPHONE4 16GB BLANCO   |NVEN   |Centro de Atención VIP   |0862034032 
12747002147595 |MOVIL APPLE IPHONE4 16GB BLANCO   |NVEN   |Centro de Atención VIP   |0862033996 

我具有可變的日期(20140430)我想連接這樣每個記錄的開始:

20140430|12743002785468 |MOVIL APPLE IPHONE4 16GB BLANCO   |NVEN   |Centro de Atención VIP   |0862034032 
20140430|12747002147595 |MOVIL APPLE IPHONE4 16GB BLANCO   |NVEN   |Centro de Atención VIP   |0862033996 

我試圖用這樣的:

cat /home/file.txt | awk '{print "'"20140430"'""|"$0;}' > /home/file.txt 

sed -i 's/^/20140430|/' /home/file.txt > /home/file.txt 

但沒有工作,我不能這樣做我的180,000記錄文件。任何人有另一個想法如何可以連接?操作系統是在SunOS 5.11 SUN4V SPARC SUN4V 11.1 非常感謝你提前

+7

這是因爲你被重定向到同一個文件。命令很好,只是重定向到另一個文件,它會很好。另外,'sed -i'本身就可以替換,所以不要重定向。 – fedorqui

+0

這些命令應該完全破壞該文件的內容。 –

+0

對不起,我試圖重定向到其他文件,例如file.tmp,但都不能工作 – alemarchan

回答

0

您還可以循環和追加:

while read line; do 
    echo 20140430'|'$line 
done </home/file.txt> /home/file.txt.tmp 
mv file.txt.tmp file.txt 
+0

非常好,我的朋友以最好的方式工作。萬分感謝! – alemarchan