쉘 스크립팅을 처음 접하는 사람에게는 이와 같은 명령이 거의 없습니다. 이와 같은 임시 파일을 갖는 것이 최선의 선택입니까, 아니면 이러한 명령을 모두 결합해야 합니까? 후자인 경우 dd 명령의 출력을 tr 명령으로 리디렉션한 다음 iconv로 리디렉션하도록 도와주실 수 있나요? 감사해요.
dd if=abcd.dat cbs=38 전환=블록=abcd.temp
고양이 abcd.temp | tr -d "\n" | tr -d "\r" > abcd.output
iconv -f ASCII -t EBCDIC-US <abcd.output > abcd.ebcdic
답변1
tr
기존 명령의 경우와 마찬가지로 파이프를 사용하여 다양한 중간 파일을 피할 수 있습니다 . dd
기본 출력( of
지정되지 않은 경우)을 리디렉션할 수 있습니다.
dd if=abcd.dat cbs=38 conv=block | tr -d "\n" | tr -d "\r" | iconv -f ASCII -t EBCDIC-US > abcd.ebcdic
두 tr
명령을 조합하여 사용할 수 있습니다.
dd if=abcd.dat cbs=38 conv=block | tr -d "\n\r" | iconv -f ASCII -t EBCDIC-US > abcd.ebcdic
답변2
일반적으로 출력을 두 번째 프로세스로 파이프하면 두 프로세스가 처리를 겹칠 수 있으므로 임시 파일을 피하는 것이 일반적으로 더 빠릅니다.
그러나 임시 파일을 사용하면 스크립트를 더 읽기 쉽게 만들 수 있다면 완벽하게 허용될 것입니다(스크립트가 사용을 마친 후 해당 파일을 삭제한다면).
dd
저는 이것을 잘못된 매개변수로 인해 너무 많은 피해를 입힐 수 있기 때문에 예외 로 보는 경향이 있습니다 . 나는 그것을 스크립트에서 사용하지 않으려고 노력할 것입니다.
기존 EBCDIC이 여전히 사용되는 것을 보니 반갑습니다!