(파일 2)의 (파일 1)에있는 파일 이름에 포함 된 모든 문자에 대해 awk에 대한 최선의 접근 방법은 무엇입니까? 지금까지(파일 2)에서 (파일 1)의 '임의의'문자에 대한 awk
코드 :
$ sed -e 's/.*\ -\ //' -e 's/.mp3$//' File1.txt | while read z; do tit="$z" ; awk -v title="$tit" '{FS = "\t"} $2 ~ title {print $0}' File2.txt ; done
결과; . 그것은 파일 이름에 (그것을 사용하여 파일을 칠 때를 제외하고 일하고
나는 하나의 내가, 아직 운이 생각할 수있는 모든 것을 인용을 두 번 시도했습니다
을 File1 :. "재생 목록"라는, 구분은 다음과 같습니다 "-"
- 피터 토시 - 나 고아 감옥 (보너스 트랙) .MP3
은 File1 필드는 "아티스트" "제목"
01 23,516,있는 File2 :라는 이름의 "마스터 목록", 구분 기호는 다음과 같습니다 탭
- 피터 토시 나 고아 감옥 32000/음악/피터 토시/피터 토시 - 나 고아 감옥 (보너스 Track.mp3
있는 File2 필드는 "아티스트", "제목", "비트 레이트" "경로"
위의 예제를 사용하여 ...의 각 항목에 대해 "재생 목록"
-
필드 1과 필드 2 (아티스트 제목) 일치
- 경우 마스터 목록 내부 $ 제목 "나 고아 감옥 (보너스 트랙) .MP3"에 대한
- 검색이 개 변수를 생산하는
- 사용 "재생 목록"은 $ 확인 아티스트도 일치합니다
- $ title 및 $ artist가 일치하면 마스터 목록의 네 번째 열을 인쇄하고 그렇지 않으면 "No Match"를 인쇄하십시오.
+1 첫 번째 게시물은 훌륭하지만 ... ;-) 예상 출력을 추가하십시오. (입력과 출력은 코드로 형식화 될 때 읽기가 쉽습니다.) 행운을 빕니다. – shellter
줄을 읽을 때마다 대신에'-F "\ t"'또는'BEGIN {FS = "\ t"}'를 사용하여 한 번만 필드 구분자를 설정하십시오. –