나는 mp3 등에서 META 데이터를 제거하는 BASH 스크립트를 작성한 다음 필요한 경우 이를 잘게 잘라서 mp3를 리샘플링하고 데이터를 다시 디자인하여 아티스트/앨범에 해당하는 디렉토리를 만듭니다.
노래 제목 중간에 영어가 아닌 문자가 포함된 mp3를 몇 개 발견했습니다. 중간 부분을 제거하고 노래 제목에 따끔한 끝 부분을 다시 넣는 가장 좋은 방법을 알아야 합니다. Exiftool을 사용하여 META 데이터를 제거하고 출력을 var-name에 넣었습니다.
ARTIST1="`exiftool -Artist "$FILENAME" -p '$Artist'`"
TITLE1="`exiftool -Title "$FILENAME" -p '$Title'`"
ALBUM1="`exiftool -Album "$FILENAME" -p '$Album'`"
first strip... Artist is -> The Stranglers and Friends
first strip... Album is -> Live in
first strip... Title is -> The Raven – With Basil Gabbi
META 데이터의 노래 제목
까마귀�������������������������������������� � ������������������������ 바질 가비와 함께
이를 얻기 위해 META 데이터 노래 이름 사이의 콘텐츠를 어떻게 제거합니까?
The Raven With Basil Gabbi
구문은 다음과 같습니다.
newSongName="$( what ever code goes here to strip out that non english sting part )"
이렇게 하면 새 문자열을 파일에 다시 쓸 수 있으며 이전 META 데이터를 새 문자열로 바꿀 수 있습니다.
감사해요
답변1
이렇게 하면 매우 가까워질 것입니다.
newSongName=$(echo "$TITLE1" | tr -dc '[:print:]')
tr
포함되지 않은 문자를 제거하라는 메시지 가 표시됩니다.print
수업 이름. 필요에 따라 다른 문자 클래스를 시도해 볼 수 있습니다.
답변2
왜곡된 문자가 포함된 문자열->
$ x="The Raven ƒÆ’¢â‚¬â€œ With Basil Gabbi"
이렇게 하면 모든 대문자가 유지되고 소문자 az는 다른 모든 문자를 제거합니다.
$ echo ${x//[^A-Za-z ]/}
문자열은 이렇게 남겨두세요
The Raven With Basil Gabbi
스크립트에서는 다음과 같이 표시됩니다.
title=${TITLE1}
## holds on to normal chars getting rid of the rest
title=${title//[^A-Za-z ]/}