2017-06-13 45 views

回答

2

使用包圍,用於指示應被視爲該領域的部分文字,但我不知道如何分析它考慮到同一values.How這忽略逗號(,)如果你的awk支持,它的一個awk的內置變量來定義字段的正則表達式,而不是定界符。它類似於FS的補充,這也是awk的內建變量。

例子:

echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $1}' 
hey there 
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $2}' 
ola 
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $3}' 
"Nice, command" 
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $4}' 
ola 
+0

爲什麼我們需要特定列 – Manee

+0

@Manee,我們倒是希望爲您發佈樣本數據和預期的輸出。否則,這是一種我們通常無法贏得的猜謎遊戲。 –

+0

@manee,因爲您必須讓awk知道字段分隔符或字段本身。這裏字段分隔符(逗號)將會很好地發揮作用,因爲您的字段本身包含逗號。 –