2008-08-24 13 views
2

各行に値を含む2つのファイルがあります。異なるファイルの値を1つのCSVファイルにまとめる

編集:私はしばらくのポストを書いている最中にこの質問への答えを考え出したと私はその不完全な状態で誤ってそれを掲示していた気づいていなかった

私がやろうとしました:

paste -d ',' file1 file2 file 3 file 4 > file5.csv 

と奇妙な出力を得ていました。私は後で、行末にキャリッジリターンと改行文字の両方があるファイルもあれば、改行文字しか持たないファイルもあるため、これが起こっていることを認識しました。私はいつもそれらのことに注意を払うことを覚えなければなりません。

答えて

2

二つのファイルを結合し

 
1 
2 
3 

FILE2:

 
2 
4 
6 
paste --delimiters=\; file1 file2 

が得られます:

 
1;2 
3;4 
5;6 
0

あなたの質問を明確にしたり取り返したりする必要があるかもしれませんが、答えは以下のとおりです。ファイル1のLinux

cat filetwo >> fileone 
1

あなたの質問をまだ入力していないと感じていますが、私はまだそれを打ちます。 ;あなたがWindows上なら)

file1: file2: file3: 
1  a  A 
2  b  B 
3  c  C 

~$ paste file{1,2,3} |sed 's/^\|$/"/g; s/\t/","/g' 
"1","a","A" 
"2","b","B" 
"3","c","C" 

あるいは、

~$ paste --delimiter , file{1,2,3} 
1,a,A 
2,b,B 
3,c,C 
0

はまた、これまで汎用性の高いLogParserを忘れないでください。

フラットテキストファイルに対してSQLのようなクエリを実行して、あらゆる種類のマージ操作を実行できます。

0

logparserまたはコマンドラインツールを使用したこれまでの回答は機能するはずです。フィルタリングやジョインのようなレコードに対してもっと複雑な操作をしたい場合は、ETLツール(Pentaho、Mapforce、Talendが思い浮かぶ)を使うことを検討することができます。これらのツールは、一般的に、データソースと行に対して実行する操作との関係を定義するためのグラフィカルなパレットを提供します。

関連する問題