나는 find
다음 구조의 파일을 대상으로 일부 파일을 반복하는 데 사용하고 있습니다.
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb-b8d4-4982_6549_6116_xazfzeg.PDF
EDI_
목표는 middle 로 시작하고 포함된 파일을 찾는 것입니다 TARGET-TYPE
. find 명령은 다음과 같습니다.
find . -name "EDI_*_TARGET-TYPE*"
find
루프를 사용하여 출력을 사용할 예정이므로 and를 사용하고 싶지 않습니다 ls
(공백과 검색이 있는 파일에 문제가 많습니다).
이것은 작동합니다:ls EDI_
작동하지 않습니다:
ls EDI_*_TARGET-TYPE*
이것은 작동하지 않습니다:
ls "EDI_*_TARGET-TYPE*"
이것은 작동하지 않습니다:
ls 'EDI_*_TARGET-TYPE*'
왜 그런지는 잘 모르겠습니다. find
누군가가 나에게 명령을 번역해 줄 수 있다면 좋을 것입니다.
답변1
나는 무엇을 할 것인가:
for file in EDI_*_TARGET-TYPE*; do
do_something "$file"
done
답변2
$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830_453a2cbb.pdf
$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830hhh_453a2cbb.pdf
$ ls EDI_*_TARGET-TYPE*
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb.pdf
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830hhh_453a2cbb.pdf
나를 위해 작동합니다. Bash 쉘 우분투 최근 LTS.