한 파일의 문자열을 여러 파일로 추출하는 방법

한 파일의 문자열을 여러 파일로 추출하는 방법

xxx.lst다음 데이터가 포함된 파일이 있습니다 .

aaa 111  
bbb 222  
ccc 333  

in 과 in 을 각각 사용하여 , 라는 이름의 3개 파일을 만들어야 합니다 111.lst.222.lst333.lstaaa111.lst bbb222.lstccc333.lst

나는 다음과 같은 것을 시도했습니다 :

for x in $(cat xxx.lst|awk '{print $1}');do
    for y in $(cat xxx.lst|awk '{print $2}'|cut -d_ -f3|sort|uniq);do
        echo $x > $y.lst
    done
done

하지만 그것은 나에게 ccc3개의 파일을 모두 제공합니다

답변1

단일 awk 명령을 사용할 수 있어야 합니다.

awk '{print $1 > $2".lst"}' xxx.lst

답변2

다음을 수행할 수 있습니다.

#!/usr/bin/env bash

while read var1 var2; do
    echo "$var1" > "$var2".lst
done < xxx.lst

관련 정보