문자열과 파일의 차이점

문자열과 파일의 차이점

기본적으로 동일한 파일 전후의 차이점을 확인하고 싶습니다.sed

다음을 실행해 보세요.

diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)

그리고

diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh 

그리고

diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh

항상 얻습니다:

diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.

올바른 접근 방식은 무엇입니까? 감사해요.

답변1

diff두 개의 파일 피연산자가 필요합니다. here-string을 사용하면 입력을 diff표준 입력 으로 전달할 수 있습니다 .

diff표준 입력에서 읽으 려면 -다음 파일 이름을 사용하십시오.

$ diff file - <<<"$( sed 'expression' file )"

또는 더 휴대하기 좋게,

$ sed 'expression' file | diff file -

사용 중인 쉘이 <(...), 및 등을 사용하여 bash프로세스 대체를 지원하는 경우 ksh93이는 또 다른 해결책일 수 있습니다.

$ diff file <( sed 'expression' file )

프로세스 대체는 파일로 표시되며 diff실제로는 "동일"합니다.

$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile

관련 정보