unix - 将每一行保存为一个单独的文件

标签 unix vim

我想将文件的每一行保存为单独的文件,使用第 1 列作为文件名

AT1G01010       chr1    3631    5899
AT1G01020       chr1    6790    8737
AT1G01030       chr1    11649   13714

期望的输出是 AT1G01010.txt 的一个单独文件,其内容是

AT1G01010       chr1    3631    5899 

我知道在 vim 中可以使用命令

:g/^/execute '.w '.line('.').'.txt'

但这会生成一个以行号命名的文件,这并不是我想要的结果。

最佳答案

试试这个脚本:

while read line
do
    name=`echo $line | awk '{print $1}'`
    echo "$line" > $name.txt
done < source_file.txt

关于unix - 将每一行保存为一个单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121947/

相关文章:

linux - 从目录读取文件的单个命令

postgresql - 如何将 pg_dump/pg_dumpall 与 postgres 数据库一起使用?

c++ - 在 vim 中,如何创建一个命令来记住光标下的单词?

c++ - clang_complete vim 扩展不适用于 STL

Vim:不区分大小写的 ex 命令完成

vim - 在 vim 上运行 python

linux - 如何使用 make 手动更新程序?

linux - Unix - 如何对一个词使用 cut -d

Vim:锁定窗口的顶行

unix - 是否有可靠的跨平台(无论如何在 *nix 上)在另一台设备上创建临时文件的方法?