2016-05-23 79 views
0

我有一個製表符分隔文件。如果這些值包含製表符,則它們將包含在"中。所以示例記錄如下所示:從製表符分隔文件中獲取值

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

是否可以編寫一個可以處理這種情況的cut/awk單個內襯?例如,我想獲得第二和第三列。

+2

對於這些場景,最好在Python或Perl中使用適當的csv解析器 – fedorqui

回答

1

由於@fedorqui評論有這個任務比gawk更好的工具,無論如何檢查FPAT變量。

快速perl解決方案。

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

使用GNU awk的,你可以使用FPAT功能由klashxx指出:

script.awk

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

使用方法如下:awk -f script.awk yourfile。該腳本採用於GNU Gawk manual - Splitting by content

相關問題