使用cut命令提取SOH分隔文件指定列失败,求解决方案
解决SOH分隔文件的列提取问题
你使用cut命令时直接写'\x01'作为分隔符无法生效,原因是shell不会解析单引号内的转义序列,以下是几种可行的解决方法:
直接输入SOH字符
在Linux终端中,先按Ctrl+V再按Ctrl+A,就能生成SOH字符(显示为^A),命令如下:cut -d '^A' -f 4,6 file_name > new_file注意:这里的
^A不是手动输入的字符,是通过Ctrl+V+Ctrl+A组合键生成的。利用shell的ANSI-C转义
若你使用的是bash这类支持ANSI-C转义的shell,可通过$''来解析转义序列:cut -d $'\x01' -f 4,6 file_name > new_file使用awk命令处理
awk对特殊分隔符的兼容性更好,命令如下:awk -F '\x01' '{print $4 "\x01" $6}' file_name > new_file如果需要用其他字符作为输出分隔符(比如逗号),只需把命令里的
"\x01"替换为","即可。
内容的提问来源于stack exchange,提问作者Rakesh Kushwaha
相关产品推荐
相关产品推荐

