1つのファイルの文字列を複数のファイルに抽出する方法

1つのファイルの文字列を複数のファイルに抽出する方法

xxx.lst次のデータを含むファイルがあります。

aaa 111  
bbb 222  
ccc 333  

inとinをそれぞれ使用して、という名前の3つのファイルを作成する必要があります111.lst222.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

関連情報