如何使用shell脚本将此txt文件拆分为小文件?

时间:2013-08-04 20:55:18

标签: 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_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_run1_fng

如何使用shell进行编码?

谢谢!非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

一个awk单行可以做你想做的事,试一试:

awk 'NR>1{print $2,$3,$4 > $1}' file