보고서 강타 : DIFF 내가 말하는 줄 텍스트 파일이 스크립트
File fileA and fileB differ
File fileX and fileY differ
내가 각 라인은 파일 이름을 구문 분석하고 명령
diff fileA fileB > fileA.diff
보고서 강타 : DIFF 내가 말하는 줄 텍스트 파일이 스크립트
File fileA and fileB differ
File fileX and fileY differ
내가 각 라인은 파일 이름을 구문 분석하고 명령
diff fileA fileB > fileA.diff
다음 명령 :
awk '/ differ$/ {print "diff "$2" "$4" >"$2".diff"}{}'
이 작업을 수행 할 수있는 스크립트가 제공됩니다.
는 다음과 같은 성적표를 참조하십시오 :
pax$ echo 'File fileA and fileB differ
hello
File fileX and fileY differ' | awk '
/differ$/ {print "diff "$2" "$4" >"$2".diff"}{}'
diff fileA fileB >fileA.diff
diff fileX fileY >fileX.diff
캡처 출력을, 다음 bash
그것을 실행하고 당신은 당신이 필요로 할 것이다.
공백이있는 파일 이름에는 잘 작동하지 않으므로주의해야합니다. 이런 혹독한 짐승이 있다면 좀 더 지능적인 구문 분석을 수행해야합니다.
[[email protected]]$ sed -n 's/File \(.*\) and \(.*\) differ/diff "\1" "\2" > "\1.diff"/p' infile
diff "fileA" "fileB" > "fileA.diff"
diff "fileX" "fileY" > "fileX.diff"
당신은 process substitution를 사용 bash
에 전달하여 생성 된 명령을 실행할 수 있습니다
감사합니다. 나는 지금 이것을 사용하고있다 : read line; do awk '/ differ $/{print "diff"$ 2 ""$ 4 ">"$ 2 ".diff"} {}'; done
이 명령은 diff 명령의 목록을 생성합니다.
[[email protected]]$ bash <(sed -n 's/File \(.*\) and \(.*\) differ/diff "\1" "\2" > "\1.diff"/p' infile)
좋습니다! 왜 그것은 bash 스크립트일까요? 해결책의 어느 부분을 골라야하는지 알려주십시오. 우리는 도움을 얻을 수 있도록 노력할 것입니다. 우리는 당신을 위해 당신의 일을하지 않을 것입니다. – Johnsyweb