我想根据文件的内容拆分文件 我的虚拟文件看起来像这样:
info info info cat
info info info cow
info info info dog
info info info dinosaur
info info info bat
$ 4个单词以不同的字母(C,D,B)开头 - 我想根据$ 4的第一个字母将文件拆分为多个。
优先输出(3个不同的文件)看起来像:
file_c
info info info cat
info info info cow
FILE_D
info info info dog
info info info dinosaur
FILE_B
info info info bat
希望有人能帮助我。
答案 0 :(得分:5)
这个oneliner应该工作:
awk '{print $0 > "file_"substr($4,0,1)}' yourfile
答案 1 :(得分:3)
awk '{name="file_"substr($4,0,1);print >name}' your_file
测试如下:
> cat temp
info info info cat
info info info cow
info info info dog
info info info dinosaur
info info info bat
> awk '{name="file_"substr($4,0,1);print >name}' temp
> cat file_b
info info info bat
> cat file_c
info info info cat
info info info cow
> cat file_d
info info info dog
info info info dinosaur
答案 2 :(得分:2)
$ while read a b c d; do echo $a $b $c $d >> file_${d:0:1}; done < dummy.txt
答案 3 :(得分:0)
使用Python
with open("temp.txt","r") as f:
for line in f.readlines():
col = line.split()[3][0]
filename = "file_"+col
f2 = open(filename,"a")
f2.write(line)
f2.close()