30개 이상의 파일이 있는 폴더가 있습니다.
이름은:
123456_12_12_AB12_NAME.mp4?BWSQv6seywG5ND2Myt7YM3JHPmaaNmtBRI0PcXbYpqoS01ivTvL0HCHvjfjFtOM9AMq7-kpHUZ0W_m8njEjqBkM9uyngsnKANw
다음 문자열을 제거하는 방법은 무엇입니까? 최종 결과는 다음과 같습니다.
123456_12_12_AB12_NAME.mp4
다음 접근 방식을 사용하면 원하는 것을 얻을 수 있습니다.
ls -l | cut -f1 -d"?"
하지만 실제로 파일 이름을 바꾸려면 이것을 배치 파일에 어떻게 넣습니까?
마지막으로 코드를 .sh 파일에 넣나요? 아니면 명령줄에서 직접?
답변1
for f in ./*
do
echo mv -- "$f" "${f%%\?*}"
done
echo
결과가 정확해 보이면 삭제하세요. ?
파일 이름의 물음표와 직접 일치시키기 위해 이스케이프해야 하는 특수 쉘 와일드카드 입니다 .