連番を補いたいです。 1 100 2 30 5 14 7 -9 . . 100 9 という100行からなるhogeファイルがあります。 1列目と2列目がタブで区切られています。
連番を補いたいです。 1 100 2 30 5 14 7 -9 . . 100 9 という100行からなるhogeファイルがあります。 1列目と2列目がタブで区切られています。 1列目を見た時、連番が途切れています。 すなわち、 3 4 6 の行がありません(その後も100行目まで所々連番が切れています)。 この途切れている連番を補い、タブと数字「0」も補い、以下の内容のファイルにしたいです。 ↓ 1 100 2 30 3 0 4 0 5 14 6 0 7 -9 . . . 100 9 ↑ここまで これをMacOSX(10.15.6)のシェルスクリプトで出来ますか? よろしくお願いします。
Linux系・13閲覧
ベストアンサー
awkが入っている事が前提だが・・・。 $ cat boge.txt 1 100 2 30 5 14 7 -9 10 -100 $ (awk -v OFS='\t' '{for(i=p+1; i<$1; i++) print i,0} {p=$1}' boge.txt;cat boge.txt) | sort -n -t$'\t' -k1 1 100 2 30 3 0 4 0 5 14 6 0 7 -9 8 0 9 0 10 -100
質問者からのお礼コメント
ご回答ありがとうございます。 sort以下が私の環境では動きませんでしたが、書き換えてなんとか出来ました! ありがとうございました!
お礼日時:2020/11/26 14:02