4

可以cut在bash中使用¬分隔符吗?

这个问题是这里讨论的主题的延伸。该链接中目标的一种解释是使用在人类文本中找不到(或很少找到)的分隔符。假设我们选择“未签名”( ¬) 作为分隔符。我的问题是关于使用cut该分隔符来提取文件的特定列。

例如,假设我们创建了一个带有¬分隔符的文件。文件 prac.txt 可能如下所示:

$cat prac.txt
"Billy""Car"¬"Red"¬"Garage"¬"3"
"Rob"¬"Truck"¬"Blue"¬"Street"¬"14" 

以下过程会产生错误:

$cut -d'¬' -f1 prac.txt  
cut: the delimiter must be a single character
Try `cut --help' for more information.

正确的输出是:

"Billy"
"Rob"

来自python的可能有用的信息:

import unicodedata
>>>unicodedata.lookup('Not sign')
u'\xac'

可能有用的字符转换链接

我的猜测是该-d标志使用了一些我尚未尝试过的“¬”表示,否则它仅适用于单个 ascii 字符。提前感谢您的帮助。

4

1 回答 1

7

在 UTF-8 中,“非符号”以两个字节编码c2 ac。并且cut不处理这个,这可以说是一个错误。请参阅有关 unix.stackexchange 的讨论。

于 2013-11-06T20:21:09.320 回答