如何将一个文件中的字符串提取到多个文件中

如何将一个文件中的字符串提取到多个文件中

我有一个文件,xxx.lst包含以下数据:

aaa 111  
bbb 222  
ccc 333  

我需要制作 3 个名为111.lst,222.lst和的文件,333.lst分别用 aaain 111.lst bbbin222.lstcccin333.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

相关内容