我正在尝试使用自定义字段分隔符拆分字符串,如下所示:
$ 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
因此,由于某些原因,字段分隔符中的|
字符无法正常工作
我怎样才能使它发挥作用?
答案 0 :(得分:3)
应该是:
awk -F '\t[|]' '{print $1, $2}'
-F
将被评估为正则表达式。将|
放入字符类中,因为它在正则表达式中具有特殊含义。
或者您也可以使用:
awk -F '\t\\|' '{print $1, $2}'