루프에서 하나씩 처리하기 전에 파일 이름을 삭제하고 싶습니다. 아래 스크립트는 예시입니다. 어떻게 얻는지 모르겠습니다."$new_filename"
for file in *.txt
do rename -n 's/[^a-zA-Z0-9_-]//g' "$file"
process "$new_filename"
done
답변1
rename
내가 아는 한 쉘 루프를 사용하려는 경우 여기서 사용할 이유가 없습니다. 어쩌면 다음과 같은 것일 수도 있습니다.
for file in *.txt; do
printf -v new_filename '%s' "${file//[^a-zA-Z0-9_-]}"
echo mv -- "$file" "$new_filename"
process "$new_filename"
done
명령 플래그 echo
와 동일하게 추가되었습니다 .rename
-n
( .
특히 선택한 파일 이름이 .txt
.