파일의 특정 위치에 있는 값 바꾸기

파일의 특정 위치에 있는 값 바꾸기

누구든지 나를 도와줄 수 있나요?

AWK 명령을 사용하여 Unix 스크립트에서 포이즌 25(25, 26, 27)의 3자리 값을 478에서 645로 바꾸는 방법입니다. 미리 감사드립니다.

답변1

"위치 25"가 무엇을 의미하는지에 대한 질문은 약간 불분명하지만 이는 dd행 대신 바이트 위치를 사용하기 때문에 실제로는 꽤 좋은 작업입니다.

current=$(dd if=file bs=1 skip=25 count=3 2>/dev/null)
(( current == 478 )) && dd if=<(printf 645) of=file bs=1 seek=25 conv=notrunc

"위치 25"가 0개의 인덱스가 아닌 1개의 인덱스로 정의된 경우 "25" 대신 "24"를 사용합니다.

관련 정보