1

我想根据文件的内容拆分文件。
我的虚拟文件如下所示:

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 个不同的文件)如下所示:

文件_c

info   info    info    cat  
info   info    info    cow

文件_d

info   info    info    dog
info   info    info    dinosaur 

文件_b

info   info    info    bat

希望有人可以帮助我。

4

4 回答 4

5

this oneliner should work:

awk '{print $0 > "file_"substr($4,0,1)}' yourfile
于 2013-01-25T10:16:11.597 回答
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 
于 2013-01-25T10:15:05.203 回答
2
$ while read a b c d; do echo $a $b $c $d >> file_${d:0:1}; done < dummy.txt 
于 2013-01-25T10:03:05.587 回答
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()
于 2013-01-26T09:07:08.343 回答