xxx.lst
다음 데이터가 포함된 파일이 있습니다 .
aaa 111
bbb 222
ccc 333
in 과 in 을 각각 사용하여 , 라는 이름의 3개 파일을 만들어야 합니다 111.lst
.222.lst
333.lst
aaa
111.lst
bbb
222.lst
ccc
333.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
하지만 그것은 나에게 ccc
3개의 파일을 모두 제공합니다
답변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