특정 문자 발생 바꾸기

특정 문자 발생 바꾸기

파일이 많아요.. 여기에 몇 가지가 있습니다. 수백 개가 더 있습니다.

2019-02-08-07-32-00_UM8305_H.PDF  2019-03-17-17-59-59_UM8305_H.PDF  2019-05-05-23-59-59_UM8305_H.PDF  2019-07-08-12-31-57_UM8305_W.PDF  2019-08-20-00-01-52_UM8305_H.PDF  2019-11-07-08-26-51_UM8305_H.PDF
2019-02-08-10-07-45_UM8305_W.PDF  

"-"10번째 인덱스를 로 바꾸고 싶었습니다 . 교체 할 "_"파일을 모두 변경 한 다음 다시 이름을 변경하여 and 가 되도록 했습니다 . 이제 특정 경우에 이를 대체할 수 있는 방법을 온라인에서 찾을 수 없습니다 . 3, 6, 7번째 위치를 모두 찾아 교체하고 싶습니다 (모두 있는 경우) . 방금 이름 바꾸기를 사용하여 교체했지만 월과 날짜가 다른 수천 개의 파일이 있고 교체가 효율적으로 수행되지 않기 때문에 그렇게 할 수 없습니다.'_''-''_''_UM8305_W.PDF''_UM8305_H.PDF''-''-''-'

답변1

솔루션은 다음을 사용합니다.매개변수 확장. 이 경우 파일 이름의 길이가 동일하고 특정 패턴을 따른다고 가정합니다.YYYY-MM-DD-HH-MM-SS_rest_of_string.PDF

for f in *.PDF; do
  mv $f ${f:0:10}_${f:11}
done

${f:0:10} 

문자열의 시작부터 10번째 문자까지입니다.


거기에서 _12자부터 끝까지 추가하고 인쇄합니다.

_${f:11}

문자 번호는 0부터 시작하므로 11은 12번째 문자를 나타냅니다.

관련 정보