在使用cut命令时,能否使用不可打印字符作为定界符呢?例如,我想使用"^A"字符(也可以表示为\001)作为定界符。
在使用cut命令时,能否使用不可打印字符作为定界符呢?例如,我想使用"^A"字符(也可以表示为\001)作为定界符。
cut -d $'\001' ...
可行(参见Bash参考手册#3.1.2.4 ANSI-C引用)。
其他(更加便携的)选项,
cut -d `echo -e '\001'` ...
FS=`echo -e '\001'`
cut -d $FS ...
或者像Alnitak和etlerant提到的那样直接使用^V插入控制字符——在shell命令行和诸如vi之类的编辑器中,这意味着“不要特殊对待我接下来输入的东西”。
是的,这完全有可能。
如果在Shell中输入,请按^V
,然后按^A
将^A
插入当前行,而不是将其视为正常的“转到行首”命令:
% cat -v foo
abc^Adef^Aghi
% cut -d^A -f2 foo
def
tab
,相当于\t
,并且你想找到每行以tab分隔的倒数第二个项目,你可以使用以下代码:cut -d $'\t' -f2- tablimited.csv
CTRL-V CTRL-A ?