如何使用--output-delimiter=""
剪切?我想使用cut加入两列。
我尝试了以下命令。但是cat -v
表示存在不可打印的字符。特别是“^@
”。我有什么建议可以克服这个问题吗?
cut -d, -f 3,6 --output-delimiter="" file1.csv | cat -v
这是我的文件的内容
011,IBM,彭明盛,T,T,T
012,INTC,欧德宁,T,T,T
013,SAP,Snabe,T,T,T
014,VMW,马瑞兹,T,T,T
015,ORCL,埃里森,T,T,T
017,RHT,Whitehurst的,T,T,T
当我执行命令时,我看到了
彭明盛^ @ T
欧德宁^ @ T
Snabe ^ @ T
马里茨^ @ T
埃里森^ @ T
Whitehurst的^ @吨
预期输出:基本上我想在输出中排除^ @
Palmisanot
Otellinit
Snabet
Maritzt
Ellisont
Whitehurstt
谢谢。
答案 0 :(得分:1)
输出分隔符不是空字符串,但可能是NULL
字符。您可能想尝试
cut -d, -f 3,6 --output-delimiter=$'\00' file1.csv
(假设你的shell支持$'...'
- 引用; bash
和zsh
在这里很好,不确定其他人)。
编辑:
如果输出分隔符设置为空字符串, cut
显然会放置NULL
字符。我没有看到解决方法。
如果awk
是可接受的解决方案,那么这将解决问题:
awk -F, '{print $3 $6}' file*
如果你想更加冗长和明确:
awk 'BEGIN{FS=","; OFS=""}; {print $3,$6}' file*
FS=","
将字段分隔符设置为,
。
OFS=""
将输出字段分隔符设置为空字符串。
答案 1 :(得分:0)
您可能不想通过字段来切换,而是通过字符或者字节。请参阅手册页中的-c
和/或-b
说明,而不是-f
。