小编Bon*_*nie的帖子

如何将文本文件中的每一行保存为新文件

我有一个带有 5 列的制表符分隔文本文件,我希望每一行都是它自己的 txt 文件,其中包含来自第 2-5 列的信息并以第 1 列命名。

例如,我的 txt 文件有数百行与此类似:

sample1name_oligos 引物 forwardseq reverseseq sample1name

sample2name_oligos 引物 forwardseq reverseseq sample2name

我想要一个名为 sample1name_oligos 的 txt 文件,如下所示:

引物 forwardseq reverseseq sample1name

和一个名为 sample1name_oligos 的 txt 文件,如下所示:

引物 forwardseq reverseseq sample1name

我试过两种方法:

1.我找到了我认为的解决方案:

awk '{print substr($0,match($0,$2)) >> ( $1 ".txt" )}' 文件名

(来自http://www.linuxquestions.org/questions/linux-newbie-8/how-to-save-each-line-from-textfile-as-new-file-889795/

这适用于我制作的测试文件(5 行),但是当我在 100 多行文件上运行它时,我得到了前 17 个文件,然后出现错误:

awk: File18.txt 使打开的文件过多,输入记录号 18,文件 myfile.txt 源行号 1

我删除了第 18 行并重试并得到相同的错误。我删除了前 20 行并重试并得到相同的错误。

2.从同一个链接,我试过

猫 myfile.txt | 在阅读 LINE 时;做 echo …

awk while-loop

4
推荐指数
1
解决办法
3528
查看次数

标签 统计

awk ×1

while-loop ×1