File 按第一个字符拆分文件-unix

File 按第一个字符拆分文件-unix,file,unix,split,File,Unix,Split,我有一个这样的文件(假设文件已排序): 我需要根据每行的第一个字符将其拆分为三个文件: 文件1: A213 foo bar sentence A123 bar foo sentence 文件2: B84521 abc hello world 文件3: C984 def word hello 如何轻松地执行此操作?您可以使用此awk将所有行重定向到特定的文件名: awk '{print > substr($0, 1, 1)}' file 因为substr($0,1,1)返回行的第一个

我有一个这样的文件(假设文件已排序):

我需要根据每行的第一个字符将其拆分为三个文件:

文件1:

A213 foo bar sentence
A123 bar foo sentence
文件2:

B84521 abc hello world
文件3:

C984 def word hello

如何轻松地执行此操作?

您可以使用此
awk
将所有行重定向到特定的文件名:

awk '{print > substr($0, 1, 1)}' file
因为
substr($0,1,1)
返回行的第一个字符,并且
print>
将输出重定向到给定的文件名。(注:如Ed Morton在评论中所述,它从1开始,而不是0。)


此外,此awk还可以实现此功能,尽管它涉及更改字段分隔符以使其特定于字符:

awk -v FS= '{print > $1}' file

您可以使用此
awk
将所有行重定向到特定的文件名:

awk '{print > substr($0, 1, 1)}' file
因为
substr($0,1,1)
返回行的第一个字符,并且
print>
将输出重定向到给定的文件名。(注:如Ed Morton在评论中所述,它从1开始,而不是0。)


此外,此awk还可以实现此功能,尽管它涉及更改字段分隔符以使其特定于字符:

awk -v FS= '{print > $1}' file
上述脚本位于文件“redir”中。以redir inputfilename的身份运行脚本

上述awk将内容拆分并重定向到单独的文件中

上述脚本位于文件“redir”中。以redir inputfilename的身份运行脚本

上述awk将内容拆分并重定向到单独的文件中