폴더에서 일부 파일을 추출하고 해당 파일 목록을 만듭니다.

폴더에서 일부 파일을 추출하고 해당 파일 목록을 만듭니다.

현재 약 1000개의 파일이 포함된 폴더에서 작업 중이며 해당 폴더에서 일부 파일 이름을 추출하고 해당 파일 이름이 포함된 다른 파일(구성 파일)을 만들어야 합니다.

기본적으로 이 폴더의 파일 이름 형식은 다음과 같습니다.

1_Apple_A_someword.txt 
1_Apple_B_someword.txt 
2_Apple_A_someword.txt 
2_Apple_B_someword.txt 
3_Apple_A_someword.txt 
3_Apple_B_someword.txt

등등

1000_Apple_A_someword.txt
1000_Apple_B_someword.txt

"Apple_A"가 포함된 모든 파일을 추출하고 싶습니다. 또한 각 "Apple_A" 파일에 대해 값이 파일 이름인 "레이블"(Unix 변수)이 있는 다른 파일을 만들고 싶습니다. 또한 "레이블"은 파일 이름의 일부입니다("Apple"이라는 단어까지).

1_Apple=1_Apple_A_someword.txt
2_Apple=2_Apple_A_someword.txt
3_Apple=3_Apple_A_someword.txt

잠깐만요...까지

1000_Apple=1000_Apple_A_someword.txt

이 작업을 수행하는 한 줄짜리 Unix 명령을 알려주실 수 있나요? 어쩌면 "awk"와 "sed"를 사용할 수도 있습니다.

답변1

이 작업은 두 단계로 수행하겠습니다.

all_apple_a.dat파일 이름에 "Apple_A"가 포함된 모든 파일을 나열하는 파일을 만듭니다 .

ls | grep Apple_A > all_apple_a.dat

labelled_apples.dat파일 이름으로 "tag"라는 파일을 만듭니다 .

perl -pe 's/(\d+_Apple)(.*)/\1=\1\2/' all_apple_a.dat > labelled_apples.dat

관련 정보