如何使用'\ 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}'
忘记那场分离器是一个正则表达式。 – ks1322