【发布时间】:2019-06-05 23:21:59
【问题描述】:
我有一个文件。它的字段分隔符是不可打印的字符\x1c(Python 中的chr(28))。在 VI 中,它看起来像 a^\b^\c,但使用 cat 我只看到 abc。没有看到字段分隔符^\。
我有一个简单的 awk 命令:
awk -F $’\x1c’ ‘{print NF}’ a
获取字段总数。它适用于 MacOS,但在 AIX 上却失败了。 AIX 似乎无法识别字段分隔符。所以输出是1,这意味着整行被认为是一个字段。
如何在 AIX 上执行此操作?任何想法都非常感谢。
【问题讨论】:
-
创建test.py来准备数据
-
Python 代码:print('a'+chr(28)+'b'+chr(28)+'c'
-
不是
awk-特定的;使用bash而不是默认的 AIX-shell (ksh)。或者像这样使用printf:FldSep=$(printf '\034'); awk -F "$FldSep" ... -
@LorinczyZsigmond 我必须使用 ksh。谢谢你的第二种方式有效。我不明白的一件事。你使用 \034 。是八进制数吗?我试过 FldSep=$(printf ‘\xc1’ );为什么不行?
-
您是否尝试在 AIX 中使用 gawk(如果已安装)?