バックアップ ジョブを実行して csv ファイルを生成する bash スクリプトがあります。
90927597|1356976813998|90927598
CSV ファイルの 3 列目の値をインクリメントまたは変更するにはどうすればよいですか? (実際には、ランダム値を使用して一意にしたいだけです)。
どうすればそれを成し遂げることができますか?
ありがとうございました
ファイルが与えられたのでa
、sed '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 のコメントから得たもの)