Replace
同時替換文本文件中的兩個模式
我有一個包含以下數字的文本文件:
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
我想同時替換every
?
with0
和every0
with?
,所以上表如下所示: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
我該怎麼做?
我認為,由於您只是交換單數字元,
tr
因此可能是這項工作的好工具。嘗試這樣的事情:
tr '0?' '?0' < log.txt
由於您要交換單個字元,因此可以使用 sed 中的
y
命令進行音譯:sed 'y/?0/0?/' infile