同时替换文本文件中的两个模式

2 replace text

我有一个包含数字的文本文件,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

我想同时替换 each ?with0和 each 0with ?,所以上表如下所示:

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
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Chr*_*ons 7

我认为,由于您只是交换单数字符,因此tr可能是完成这项工作的好工具。

尝试这样的事情:

tr '0?' '?0' < log.txt
Run Code Online (Sandbox Code Playgroud)


Ben*_* W. 6

由于您要交换单个字符,因此可以使用sed 中的y命令进行音译:

sed 'y/?0/0?/' infile
Run Code Online (Sandbox Code Playgroud)