我正在尝试像这样使用自定义字段分隔符拆分字符串:
$ 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}'
关于linux - 如何使用 '\t|' 字符串作为分隔符使用 awk 拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327571/