
동일한 파일 이름을 가지며 동일한 디렉토리에서 확장자(mp3)만 다른 wav 확장자를 가진 파일을 찾고 싶습니다.
지금까지 다음과 같은 구조화된 명령을 시도했습니다.
$ diff -s $(for i in *.wav; do echo "${i%wav}"; done) $(for i in *.mp3; do echo "${i%mp3}"; done)
diff: extra operand `abc(xyz'
diff: Try `diff --help' for more information.
답변1
diff
일부 명령을 출력 하려면 다음을 사용하십시오.프로세스 대체<(...)
명령 대체 대신 $(...)
. 그렇지 않으면 작동해야 할 것 같습니다.
diff $(foo)
foo
의 명령줄에 의 출력을 넣고 diff
, diff
읽을 파일 이름을 원합니다. diff <(foo)
의 출력이 foo
fd에서 사용 가능하도록 준비하고 diff
이미 열린 fd에 해당하는 경로 이름을 제공합니다( /dev/fd/NN
, 시스템에 따라 다를 수 있음).
질문을 다시 읽어보더라도 다음과 같이 하고 싶을 수도 있습니다.
for f in *.wav ; do
b=${f%.wav}
if [ -f "$b.mp3" ] ; then echo "$b.mp3 exists" ; else
echo "$b.mp3 missing" ; fi
done
그러면 .wav
디렉토리의 모든 파일에 해당 .mp3
파일이 있는지 알 수 있습니다. (물론 .mp3
해당 파일이 없는 파일은 표시되지 않습니다 .wav
.)