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