동일한 디렉토리에서 확장자가 wav인 동일한 파일 이름을 가진 파일을 찾고 싶습니다. 확장자만 다릅니다(mp3).
지금까지 다음과 같은 구조화된 명령을 시도했습니다.
$ 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
도 읽으려고 합니다. 예약된 출력은 fd에서 사용할 수 있으며 열린 fd( , 시스템별로 다를 수 있음) 에 해당하는 경로 이름이 제공됩니다 .diff
diff <(foo)
foo
diff
/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