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つの異なるファイル)は次のようになります。

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

誰かがこれで私を助けてくれることを願っています。

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 に答える