Unix 将字符串压缩到文件中
我有一个包含以下内容的文件,例如,我放置了3行:Unix 将字符串压缩到文件中,unix,awk,sed,Unix,Awk,Sed,我有一个包含以下内容的文件,例如,我放置了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
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
及
但是没有工作,我不能对我18万条记录的档案这样做。有人知道我如何连接吗?操作系统是SunOS 5.11 sun4v sparc sun4v 11.1
提前非常感谢您也可以循环并附加:
while read line; do
echo 20140430'|'$line
done < /home/file.txt > /home/file.txt.tmp
mv file.txt.tmp file.txt
这是因为您正在重定向到同一个文件。命令很好,只要重定向到另一个文件就可以了。另外,sed-i单独执行就地替换,所以不要重定向。这些命令应该已经完全删除了该文件的内容。抱歉,我尝试重定向到其他文件,例如file.tmp,但无法正常工作检查文件的内容,如@EtanReisner所说,如果您运行的命令完全符合规定,则会完全覆盖/home/file.txt。如果这些命令不是您实际运行的命令,则您需要向我们提供您执行的命令,并检查源文件的内容,并向我们提供您实际运行的命令的输出。非常好,我的朋友以最佳方式工作。多谢各位!
while read line; do
echo 20140430'|'$line
done < /home/file.txt > /home/file.txt.tmp
mv file.txt.tmp file.txt