2016-05-23 18 views
0

タブ区切りファイルがあります。値にタブが含まれる場合は、"で囲みます。だから、サンプルレコードは次のようになります。タブ区切りファイルからの値の取得

firstfield secondfield thirdfield 
firstfield "second field with tab" thirdfield 
firstfield secondfield thirdfield 

それはこのような状況の世話をすることができ、カット/ awkは1つのライナーを書くことは可能ですか?たとえば、2番目と3番目の列を取得したいとします。

+2

から採用されています。これらのシナリオでは、適切なcsvパーサーをPythonまたはPerlで使用することをお勧めします – fedorqui

答えて

1

@fedorquiのコメントには、gawkよりも優れたツールがありますが、この場合はFPATという変数をチェックしてください。

速いperl溶液です。 GNUを使用して

perl -F'(\w+|"[^"]+")' -ane 'print $F[3]." ".$F[5]."\n"' file 
1

klashxxで指摘したように、あなたがFPAT機能を使用することができますawkは:awk -f script.awk yourfile

script.awk

BEGIN { FPAT = "([^\t]+)|(\"[^\"]+\")" 
     OFS = "\t" } 
     { print $2, $3 } 

このようにそれを使用してください。スクリプトは、GNU Gawk manual - Splitting by content

関連する問題