如何使用'\ t |'与awk分割字符串刺痛作为分隔符?

时间:2017-06-02 11:14:52

标签: linux 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

因此,由于某些原因,字段分隔符中的|字符无法正常工作 我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:3)

应该是:

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

-F将被评估为正则表达式。将|放入字符类中,因为它在正则表达式中具有特殊含义。

或者您也可以使用:

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