在bash中使用cut命令处理一个包含唯一分隔符的文件

6

如何在bash中使用“¬”分隔符来使用“cut”命令?

这个问题是对此处所涵盖主题的扩展。那个链接中目标的一种解释是使用一个在人类文本中几乎找不到(或很少找到)的分隔符。假设我们选择“非符号”(¬)作为分隔符。我的问题是关于使用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字符。提前感谢您的任何帮助。


另一个例子:cut -d $(echo -e "\\u007C\\u001C") - kenorb
1个回答

10
在UTF-8中,“非符号”用两个字节编码。由于这种情况下cut无法处理,因此这可以被认为是一个错误。请参见unix.stackexchange上的此讨论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接