각 폴더의 세 번째 파일에만 명령을 실행하는 방법

각 폴더의 세 번째 파일에만 명령을 실행하는 방법

3개의 .txt 파일이 포함된 하위 폴더가 있습니다. 각 하위 폴더의 세 번째 파일만 선택할 수 있나요? 실제로 각 파일 이름 끝에 "e"를 복사하고 이름을 바꾸거나 추가하고 싶습니다. 각 폴더의 세 번째 파일에만 해당됩니다. 이 폴더입니다

New folder/20130903/ELF:

Naqs_20130901.txt
Naqs_20130902.txt
Naqs_20130903.txt

New folder/20130904/ELF:

Naqs_20130902.txt
Naqs_20130903.txt
Naqs_20130904.txt

세 번째 파일에서만 이 작업을 수행하겠습니다.

답변1

다음을 사용하는 경우 bash배열 내의 파일 이름 확장을 통해 이를 수행할 수 있습니다 .

for dir in New\ folder/20130903/ELF New\ folder/20130904/ELF ; do
    files=( "$dir"/* )   # store all matching filenames in an array
    echo "${files[2]}"    # use 3rd element (subscripts are 0-based)
done

이 출력

New folder/20130903/ELF/Naqs_20130903.txt
New folder/20130904/ELF/Naqs_20130904.txt

해당 줄을 echo다음 파일에서 실행하는 데 필요한 명령으로 바꾸세요.

mv "${files[2]}" "${files[2]}e"

관련 정보