파일 이름을 테이블의 열과 비교하고 해당 항목이 발견되면 다른 열을 기준으로 이름을 바꿉니다.

파일 이름을 테이블의 열과 비교하고 해당 항목이 발견되면 다른 열을 기준으로 이름을 바꿉니다.

(불편하게도) 다음과 같은 이름의 디렉터리(bash)에 광범위한 파일 세트가 있습니다.

COMMONSTUFF_X_Y_**VARIABLE-IDENTIFIER**_COMMONSTUFF

또한 한 열에는 전체 이름이 아닌 변수 식별자 부분만 포함된 테이블이 있고 VARIABLE-IDENTIFIER다른 열에는 간단한 고유 이름(같은 행에 연결됨)이 포함되어 있으며 이를 복잡한 이름으로 바꾸고 싶습니다. 디렉토리에 있는 파일이 불편합니다.

파일 이름을 읽고, 그것이 테이블의 특정 열에 있는 변수 식별자에 해당하는지 확인하고, 그것이 사실이라면 다른 열에서 필요한 이름을 읽어서 이 이름 문서를 갖도록 이름을 바꾸는 스크립트가 있을 수 있을 것 같습니다.

저는 쉘 스크립팅을 처음 접했기 때문에 어디서부터 시작해야 할지 모르겠지만 이것이 가능하다고 생각합니다.

답변1

나는 이것을 할 것입니다 awk:

awk -F, '{system("mv COMMONSTUFF_X_Y_" $1 "_COMMONSTUFF " $2)}' mycsv.csv

여기서 1은 VARIABLE-IDENTIFIER의 (1-인덱싱된) 열 번호이고 2는 단순 고유 이름의 열 번호입니다.

관련 정보