File 如何使用shell脚本将此txt文件拆分为小文件?
我想把一个txt文件分为几个小文件。但是,我不知道如何使用shell编写脚本。如果有人能帮忙,我们将不胜感激 我要按如下方式拆分的文件:File 如何使用shell脚本将此txt文件拆分为小文件?,file,shell,awk,split,File,Shell,Awk,Split,我想把一个txt文件分为几个小文件。但是,我不知道如何使用shell编写脚本。如果有人能帮忙,我们将不胜感激 我要按如下方式拆分的文件: name Onsetime duration weight s002_run1_fng 122.6 2 1 s002_run1_fng 144.8 2 1 s002_run1_fyg 132.6 2 1 s002_run1_fyg 182.6 2 1 s002_run1_fyg 198.6 2 1 s002_run1_fy
name Onsetime duration weight
s002_run1_fng 122.6 2 1
s002_run1_fng 144.8 2 1
s002_run1_fyg 132.6 2 1
s002_run1_fyg 182.6 2 1
s002_run1_fyg 198.6 2 1
s002_run1_fyg 230.6 2 1
s002_run1_fyg 308.6 2 1
s002_run1_fyg 368.6 2 1
s002_run1_fyg 382.6 2 1
s002_run1_fyg 410.6 2 1
s002_run1_fnl 294.8 2 1
s002_run1_fnl 394.8 2 1
s002_run1_fyl 66.6 2 1
s002_run1_fyl 78.6 2 1
s002_run1_fyl 158.6 2 1
s002_run1_fyl 207.1 2 1
s002_run1_fyl 257.4 2 1
s002_run1_fyl 269.2 2 1
s002_run1_fyl 319.2 2 1
s002_run1_fyl 327.3 2 1
s002_run1_fnn 52.8 2 1
s002_run1_fnn 280.7 2 1
s002_run1_fnn 350.8 2 1
s002_run1_fyn 96.6 2 1
s002_run1_fyn 110.6 2 1
s002_run1_fyn 169.3 2 1
我想将文件拆分为新的txt文件,第一列是新文件的名称,第二到第四列是新文件的内容。如果第一列相同,则第二到第四列将组成一个新文件。例如,第一个文件的内容是
122.6 2 1
144.8 2 1
新文件名将是“s002\u run1\u fng
”
如何使用shell编写代码
谢谢大家!!非常感谢你的帮助 awk one liner可以满足您的需求,试一试:
awk 'NR>1{print $2,$3,$4 > $1}' file
嗯,这并不意味着你只是得到了代码,所以,一些初学者:你需要循环浏览你当前的文本文件;在循环中,用空格分隔列,创建一个文件,将内容打印到该文件,然后关闭该文件是的,您的代码正常!伟大的非常感谢你!或者我必须手动完成。这太费时了。然而,还有另一个问题。当我运行您提供的代码时,终端说:awk:s002_run3_fyn使太多打开的文件输入记录编号87,file feedback.txt源代码行编号1它只生成了17个文件。我怎样才能解决这个问题?多谢各位@杨梅很乐意帮忙。对于打开的文件太多的问题,您可以尝试以下方法:首先删除上次运行时生成的所有文件(如果有)。然后执行
awk'NR>1{打印$2,$3,$4>>1;关闭($1)}文件
非常感谢您的帮助!代码有效!这项工作在两秒钟内完成了。非常感谢!但是,当我对文件使用相同的代码时(该文件具有类似的结构),它不起作用。终端没有报告错误,但它没有生成文件。您能再次帮助我吗?非常感谢。名称预计持续时间权重s002_run1_ag 116.761 2 1 s002_run1_ag 128.755 2 1 s002_run1_ag 138.763 2 1 s002_run1_ag 178.762 2 1 s002_run1_ag 190.771 2 1 1 s002_run1_ag 226.75 2 1 s002_ag 304.764 2 1 s002_run1_ag 360.759 2 1 s002_run1_ag 374.77 2 1_run1 404; 1.761