2016-07-12 4 views
0

私はあるfile.txtをを持っているが、次のようになります。テキストファイル内の複数の行を、1つの列のカテゴリに基づいて等しい数に分割しますか?

Name  Value 
Individual1 1 
Individual1 2 
Individual1 4 
Individual2 23 
Individual2 232 
Individual2 15 
Individual3 6 
Individual3 8 
Individual3 09 
... and so on... 

私は、個々のために別のファイルに各個人を分割したいと思います。私は、このためのシンプルでstriaghtフォワードだが、それが何であるかそこにbashコマンドがあります知っている

Individual2 23 
Individual2 232 
Individual2 15 

Individual1 1 
Individual1 2 
Individual1 4 

とIndividual2.txtは、次のようになります。Individual1.txtがどのように見えるよう? AWKで

答えて

2

awk 'FNR>1 {print > $1".txt"}' file.txt 
+0

これは本当にエレガントなラインですが、あなたは何が起こっているかを説明する気でしょうか?これを作成する場合は、代わりに>>パイプを使用すると思います。どのようにそのように各行を書くことができ、毎回上書きするのですか? – Tom

+0

'FNR'は各入力ファイルの行数です(ここでは' file.txt'のみです)。 FNRがより大きい場合のみ、中括弧で部分を実行して見出しを除外します。 'print> $ 1" .txt "'行をファイルにリダイレクトします。このawk構文はファイルを作成し、すべての行をこのファイルに追加します。ファイルが存在する場合は上書きされます。 – Cyrus

関連する問題