2016-10-11 3 views
0

で私は、次のCSVがバッシュスプリットCSVはレンジ

"Costa Rica","Aberdeen Research",10152 
"Costa Rica","Applebees Lab",14562 
"Costa Rica","Bride Research",10452 
"Costa Rica","Complex Teams",4512 
"Costa Rica","Dynamic Air",7854 
"Costa Rica","Electronict Arts",7851 

ファイルがあると私はBASHスクリプトでNの2番目の列の最初の文字に基づいて新しいファイルをCSVを分割する必要が

たとえば

スクリプト:

$: ./split.sh -from A -to C file.csv

と期待される結果がでなければなりません。

"Costa Rica","Aberdeen Research",10152 
"Costa Rica","Applebees Lab",14562 
"Costa Rica","Bride Research",10452 
"Costa Rica","Complex Teams",4512 

というように、私は-from -toでdiferent・ファースト手紙を渡す場合は、awkのに非常に単純にこのような何かを達成することができます

おかげ

+0

それだけでなく、フィルタリングするだけでなく範囲も指定できます。あなたの試みを見ることは良いことです。また、残りの行はどうなりますか? – fedorqui

答えて

2

パラメータ。

awk -F "," '$2 ~ /^\"[A-C]/' < file.csv 

が返されます:

"Costa Rica","Aberdeen Research",10152 
"Costa Rica","Applebees Lab",14562 
"Costa Rica","Bride Research",10452 
"Costa Rica","Complex Teams",4512 

注これは大文字と小文字が区別されるので、"Costa Rica","bird sanctuary",4321などの列と一致しないこと。 、

awk -F "," '$2 ~ /^\"[a-cA-C]/' < file.csv 

十分に単純であるべきbashスクリプトにこれを適応awkは、getoptsは正規表現マッチングに少しアップ読んで考えてみます。これはにコマンドを変更することができません。

+0

¡Genius!どうもありがとう – rcastellanosm

関連する問題