Text-Processing

帶有“列”的“無效或不完整的多字節或寬字元”

  • January 15, 2021

我在一個 Linux 系統上,我試圖在一個文件上使用“列”,我已經用擴展字元作為分隔符。原因是任何正常的列印字元都可能出現在我不希望發生分離的地方,所以通過使用“sed”來查找我做哪些列分開的地方,並在這些地方添加擴展字元,然後使用與“列”分隔符相同的擴展字元我應該沒問題。

唉,嘗試使用十六進製字元AE:

$ column -ts\xAE junk1  
column: Invalid or incomplete multibyte or wide character

…或任何其他擴展字元都不起作用,我已經嘗試了引號和其他我能想到的技巧的組合。但是 ts 聽起來像“列”可以使用擴展字元,所以我只需要正確輸入。

如果要列印 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')。我用過-o "::::::::",所以你可以很容易地看到這些列。

引用自:https://unix.stackexchange.com/questions/629324