我在 Linux 系统上,尝试在文件上使用“列”,并在该文件中添加了扩展字符以用作分隔符。原因是任何正常的打印字符都可能出现在我不希望发生分隔的地方,因此通过使用“sed”仅查找我执行要分隔的列的那些位置,并在这些位置添加扩展字符,然后使用相同的扩展字符作为“列”分隔符我应该没问题。
唉,尝试使用十六进制字符 AE:
$ column -ts\xAE junk1
column: Invalid or incomplete multibyte or wide character
...或任何其他扩展字符都不起作用,我已经尝试了所有我能想到的引号和其他技巧的组合。但 ts 听起来像“column”可以使用扩展字符,所以我只需要正确输入内容即可。
答案1
如果你想打印 Unicode 小写 æ,即 u00E6,你可以使用:
$ printf '\u00E6\n'
æ
因此,如果您的文件如下所示:
$ printf 'foobarbaz\u00E6bar\u00E6baz bar something else whohooo!\n'
foobarbazæbaræbaz bar something else whohooo!
您可以像这样使用列:
$ printf 'foobarbaz\u00E6bar\u00E6baz bar something else whohooo!\n' |
column -ts$'\u00E6' -o "::::::::"
foobarbaz::::::::bar::::::::baz bar something else whohooo!
注意 ANSI 转义格式 ( $'characterCode'
);看脚本中包含 $"dollarsign-prefixed string" 是什么意思?我使用-o "::::::::"
这样你就可以轻松地看到列。