다음과 같은 숫자가 포함된 텍스트 파일이 있습니다.
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