1

バックアップ ジョブを実行して csv ファイルを生成する bash スクリプトがあります。

90927597|1356976813998|90927598

CSV ファイルの 3 列目の値をインクリメントまたは変更するにはどうすればよいですか? (実際には、ランダム値を使用して一意にしたいだけです)。

どうすればそれを成し遂げることができますか?

ありがとうございました

4

1 に答える 1

2

ファイルが与えられたのでased 's/hello/bye/g a' replaces all ocurrencies ofこんにちは、withさようならin the file

$ 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 に置換が表示されます。


行ごとに異なる値を持つ3列目の各値は、可能だと思いますか? ランダムにするか、同じ値 + ランダム値を使用するか、それをユニークにするためのアイデア

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

(アイデアはjthill のコメントから得たもの)

于 2013-05-10T19:25:13.947 に答える