tr, inov 및 dd와 같은 여러 명령 결합

tr, inov 및 dd와 같은 여러 명령 결합

쉘 스크립팅을 처음 접하는 사람에게는 이와 같은 명령이 거의 없습니다. 이와 같은 임시 파일을 갖는 것이 최선의 선택입니까, 아니면 이러한 명령을 모두 결합해야 합니까? 후자인 경우 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이 여전히 사용되는 것을 보니 반갑습니다!

관련 정보