Linux, CentOS-두 파일을 비교하려면 명령을 사용합니다.
comm --check-order -1 --output-delimiter=----- <sort(file1.txt) <sort (file3.txt) > result.txt ;
그리고 그것은 쉘에서 작동하지만 bash 파일을 만들려고 할 때-나는
syntax error near unexpected token `('
스크립트는 가장 간단합니다.
#!/bin/bash
cd /var/www/html/compare/ ;
comm --check-order -1 --output-delimiter=----- <sort(file1.txt) <sort (file3.txt) > result.txt ;
exit ;
sh
나는 이미 둥근 괄호를 이스케이프하여 변형을 시도했습니다.
sort\(file1.txt\)
또는
sort'(file1.txt)'
하지만이 케이스 쉘은
sort(file1.txt)...: No such file or directory
나는 절대 경로로 시도했다.
<sort\(var/www/html/compare/file1.txt\)
동일한 결과 "해당 파일 없음"
이미 다음과 같은 변형으로 스크립트를 실행 해 보았습니다.
sh /a/compare.sh
bash /a/compare.sh
chmod +x /a/compare.sh; ./a/compare.sh
여전히 같은 문제입니다.
그래서 대괄호를 이스케이프 처리 한 "No such file ..."또는 다른 경우 "예기치 않은 토큰"이 있습니다.
시도해 볼 아이디어에 미리 감사드립니다. 구문의 올바른 "혼합"이 될 수 있습니까?
많은 조합 후에 나는 약간의 특정 이스케이프를 사용하여 BASH를 강제해야하는 솔루션을 찾았습니다. 이 스크립트는 작동합니다.
#!/bin/bash
cd /var/www/html/compare/ ;
`bash -c "comm --check-order -1 --output-delimiter=----- <(sort file1.txt) <(sort file2.txt) > result.txt" ` ;
exit ;
sh
누군가가 시간을 절약하는 데 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다