awk增加或更改文件中列的值

时间:2013-05-10 19:20:39

标签: linux bash sed awk

我有一个运行备份作业的bash脚本并生成一个csv文件。

90927597|1356976813998|90927598

如何增加/更改CSV文件第3列的值? (我实际上只是想使用随机值使其成为uniq)。

我怎样才能完成这项工作?

谢谢

1 个答案:

答案 0 :(得分:2)

鉴于文件ased 's/hello/bye/g a' replaces all ocurrencies of问候with再见in the file a`。

$ cat a
90927597|1356976813998|90927598
$ sed 's/90927598/hello/g' a
90927597|1356976813998|hello
$ 
$ sed -i 's/90927598/hello/g' a
$ cat a
90927597|1356976813998|hello

即,sed -i替换该文件。没有-i,它会在stdout上显示替换。


  

第三列中的每个值对每行都有不同的值,do   你觉得它可能吗?   只是随机,或使用相同的值+随机值,这个想法只是为了使它成为uniq

$ awk -v v=YOUR_SEED 'BEGIN {FS = "|"; OFS="|" } $3=++v' a > output_file

(想法来自jthill comment