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