次の数字を含むテキストファイルがあります。
34 77 1716 150?.2 67.5892 11.9691 23 1?6 83
35 78 0 0 0 0 0 0 0
36 79 0 0 0 0 0 0 0
37 80 0 0 ? ? 0 0 0
38 81 0 0 0 ? 0 0 0
39 82 0 0 0 0 ? 0 ?
40 85 169 152.8 81.5917 22.3759 18 118 100
41 251 1412 131? 97.7358 16.6563 37 126 89
42 252 578 488.5 88.?502 23.9728 29 124 95
43 253 585 518.6 95.4444 19.6661 19 119 100
44 254 576 533.2 96.4271 18.5693 13 119 106
45 255 1424 1313.3 94.7584 21.7414 14 146 132
それぞれを同時に交換したいので、上の表は次?
のとおりです。0
0
?
34 77 1716 15?0.2 67.5892 11.9691 23 106 83
35 78 ? ? ? ? ? ? ?
36 79 ? ? ? ? ? ? ?
37 8? ? ? 0 0 ? ? ?
38 81 ? ? ? 0 ? ? ?
39 82 ? ? ? ? 0 ? 0
4? 85 169 152.8 81.5917 22.3759 18 118 1??
41 251 1412 1310 97.7358 16.6563 37 126 89
42 252 578 488.5 88.05?2 23.9728 29 124 95
43 253 585 518.6 95.4444 19.6661 19 119 1??
44 254 576 533.2 96.4271 18.5693 13 119 1?6
45 255 1424 1313.3 94.7584 21.7414 14 146 132
どうすればいいですか?
答え1
私はあなたが単一の文字だけを交換するので、tr
仕事に良いツールになることができると思います。
次のようにしてみてください。
tr '0?' '?0' < log.txt
答え2
単一の文字を変更したいので、次のものを使用できます。y
注文するsed では、次のように音訳されます。
sed 'y/?0/0?/' infile
答え3
このテキストがというファイルにあるとし、log.txt
次のコマンドを実行します。
sed "s/?/tmp/g;s/0/?/g;s/tmp/0/g" log.txt