空字符串作为 Cut 的输出字段分隔符
Empty string as a output field seperator for Cut
如何将 cut 与 --output-delimiter=""
一起使用?我想使用 cut 连接两列。
我尝试了以下命令。但是 cat -v
显示有不可打印的字符。特别是“^@
”。关于如何克服这个问题有什么建议吗?
cut -d, -f 3,6 --output-delimiter="" file1.csv | cat -v
这是我文件的内容
011,IBM,Palmisano,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,怀特赫斯特,t,t,t
当我 运行 我的命令时,我看到
帕米萨诺^@t
欧德宁^@t
斯内普^@t
马里茨^@t
埃里森^@t
怀特赫斯特^@t
预期输出:基本上我想在输出中排除 ^@
棕榈树
欧德尼
斯纳贝特
马里茨
埃里森
怀特赫斯特
谢谢。
您可能不想按 字段 进行剪切,而是按 个字符 或者 字节 [=18] =].请参阅手册页中 -c
and/or -b
的说明,而不是使用 -f
.
输出分隔符不是空字符串,可能是 NULL
字符。您可能想尝试
cut -d, -f 3,6 --output-delimiter=$'[=10=]' file1.csv
(假设你的 shell 支持 $'...'
-quoting;bash
和 zsh
在这里没问题,其他的不确定)。
编辑:
如果输出分隔符设置为空字符串,cut
显然会放置 NULL
字符。我没有办法解决它。
如果 awk
是一个可以接受的解决方案,这将达到目的:
awk -F, '{print }' file*
如果你想更详细和明确:
awk 'BEGIN{FS=","; OFS=""}; {print ,}' file*
FS=","
将字段分隔符设置为 ,
。
OFS=""
将输出字段分隔符设置为空字符串。
如何将 cut 与 --output-delimiter=""
一起使用?我想使用 cut 连接两列。
我尝试了以下命令。但是 cat -v
显示有不可打印的字符。特别是“^@
”。关于如何克服这个问题有什么建议吗?
cut -d, -f 3,6 --output-delimiter="" file1.csv | cat -v
这是我文件的内容
011,IBM,Palmisano,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,怀特赫斯特,t,t,t
当我 运行 我的命令时,我看到
帕米萨诺^@t
欧德宁^@t
斯内普^@t
马里茨^@t
埃里森^@t
怀特赫斯特^@t
预期输出:基本上我想在输出中排除 ^@
棕榈树
欧德尼
斯纳贝特
马里茨
埃里森
怀特赫斯特
谢谢。
您可能不想按 字段 进行剪切,而是按 个字符 或者 字节 [=18] =].请参阅手册页中 -c
and/or -b
的说明,而不是使用 -f
.
输出分隔符不是空字符串,可能是 NULL
字符。您可能想尝试
cut -d, -f 3,6 --output-delimiter=$'[=10=]' file1.csv
(假设你的 shell 支持 $'...'
-quoting;bash
和 zsh
在这里没问题,其他的不确定)。
编辑:
如果输出分隔符设置为空字符串,cut
显然会放置 NULL
字符。我没有办法解决它。
如果 awk
是一个可以接受的解决方案,这将达到目的:
awk -F, '{print }' file*
如果你想更详细和明确:
awk 'BEGIN{FS=","; OFS=""}; {print ,}' file*
FS=","
将字段分隔符设置为 ,
。
OFS=""
将输出字段分隔符设置为空字符串。