Linux awk文件中列的增量或更改值

Linux awk文件中列的增量或更改值,linux,bash,sed,awk,Linux,Bash,Sed,Awk,我有一个bash脚本,它运行备份作业并生成一个csv文件 90927597|1356976813998|90927598 如何增加/更改CSV文件第三列的值?(实际上我只想使用一个随机值使其成为uniq) 我怎样才能做到 谢谢鉴于文件a,sed's/hello/bye/g a'将文件a`中的所有hello替换为bye $ cat a 90927597|1356976813998|90927598 $ sed 's/90927598/hello/g' a 90927597|13569768139

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

90927597|1356976813998|90927598
如何增加/更改CSV文件第三列的值?(实际上我只想使用一个随机值使其成为uniq)

我怎样才能做到


谢谢

鉴于文件
a
sed's/hello/bye/g a'将文件
a`中的所有hello
替换为
bye

$ 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
,则在标准输出上显示替换



第三列中的每个值对于每行都有不同的值,请执行以下操作 你认为可能吗? 只是随机的,或者使用相同的值+随机值,这个想法只是为了使它uniq


(创意来源)

谢谢您的帮助,但我可以为一行完成此操作,我的csv文件有数千行,您知道我如何更改整个文件中第三列的值吗?您必须使用完全相同的值更改每一列的值还是每一行的值不同?第三列中的每一个值对于每一行的值不同,你认为它可能吗?但是你希望它存储什么价值呢?只是一个随机的?是的,只是随机的,或者使用相同的值+随机值,这个想法只是为了让它成为uniq
awk-F\\\''{++$3;print}'
好主意,@jthill,我在更新的答案中使用了它的一部分。@jthill,你需要在其中的某个地方设置
OFS=\\\\\
,只是想知道我是否可以不增加1,而是说10@glennjackman对<然后,代码>awk-F\\\\\''{$3+=10;print}'OFS=\\\\\
$ awk -v v=YOUR_SEED 'BEGIN {FS = "|"; OFS="|" } $3=++v' a > output_file