텍스트 파일의 두 패턴을 동시에 바꾸기 [복제]

텍스트 파일의 두 패턴을 동시에 바꾸기 [복제]

다음과 같은 숫자가 포함된 텍스트 파일이 있습니다.

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

각각을 동시에 교체하고 싶으므로 위의 표는 다음 ?과 같습니다 .00?

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

관련 정보