是否可以使写入多个文件的bash脚本运行得更快?

www*_*iam 0 bash shell scripting

我有一个脚本从文件中读取行,获取每行的第一列,并附加到名为该行的文件(我正在尝试编写许多不同的文件,名为$ id.txt).

是否有可能有一个比这更快的脚本(在单节点机器上)?请注意,我使用read -r并且id="$(echo $line | awk '{print $1}')"因为我有以制表符分隔的字段,并且在某些字段中存在某些字符,例如我希望保留的字符串.

    while read -r line
    do
        id="$(echo $line | awk '{print $1}')"
        echo "$line" >> $id.txt
    done < $1
Run Code Online (Sandbox Code Playgroud)

我输入的一些特征:

  • 输出$id.txt文件不是那么大,通常平均几百行,最多几千行
  • 实际上已经对id进行了排序,并且这些行以连续的块形式出现,即:
abc ...
abc ...
def ...
def ...
def ...
def ...
ghi ...
ghi ...
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 6

太多的工作.

awk '{ print >> $1".txt" }' "$1"
Run Code Online (Sandbox Code Playgroud)