使用带有不可打印分隔符的剪切

时间:2009-04-24 10:15:03

标签: linux command-line

是否可以使用剪切并且具有不可打印的字符作为分隔符?例如,我想将“^ A”字符(也表示为\ 001)作为分隔符。

4 个答案:

答案 0 :(得分:28)

如果你正在使用Bash,

cut -d $'\001' ...

有效(见Bash Reference Manual # 3.1.2.4 ANSI-C Quoting)。

其他(更便携)选项,

cut -d `echo -e '\001'` ...

FS=`echo -e '\001'`
cut -d $FS ...

或者使用Alnitak和etlerant提到的^ V直接插入控制字符 - 在shell命令行上,以及在vi等编辑器中,这意味着“不要处理我特意打字的下一件事”。

答案 1 :(得分:5)

是的,这完全有可能。

如果输入一个shell,请按^V,然后按^A^A逐字插入当前行,而不是将其视为正常“转到行首”命令:

% cat -v foo
abc^Adef^Aghi
% cut -d^A -f2 foo
def

答案 2 :(得分:1)

例如,如果您的不可打印定界符为tab,等同于\t,并且您希望找到由制表符分隔的每行的最后一项,则可以使用此项:

cut -d $'\t' -f2- tablimited.csv

答案 3 :(得分:0)

CTRL-V CTRL-A?