2017-06-02 89 views
1

我試圖使用自定義字段分隔像這樣分割字符串:如何使用' t |'分隔awk字符串蜇作爲分隔符?

$ echo -e "abc\t|def" | awk -F '\t|' '{print $1, $2}' 
abc |def 

我希望輸出爲:

abc def 

但是,相反它也包括|字符是分隔的一部分:

abc |def 

如果使用'\t#'作爲分隔符我得到預期的輸出:

$ echo -e "abc\t#def" | awk -F '\t#' '{print $1, $2}' 
abc def 

所以在字段分隔某種原因|字符不能按預期工作。
我該如何使它工作?

回答

3

它應該是:

awk -F '\t[|]' '{print $1, $2}' 

-F將得到評估的正則表達式。將|放到一個字符類中,因爲它在正則表達式中有特殊的含義。

或者您可以使用:

awk -F '\t\\|' '{print $1, $2}' 
+0

忘記那場分離器是一個正則表達式。 – ks1322

相關問題