如何使用'\ t |'分隔awk字符串蜇作为分隔符?

问题描述:

我试图使用自定义字段分隔像这样分割字符串:如何使用' 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 

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

它应该是:

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

-F将得到评估的正则表达式。将|放到一个字符类中,因为它在正则表达式中有特殊的含义。

或者您可以使用:

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

忘记那场分离器是一个正则表达式。 – ks1322