gpt4 book ai didi

linux - 空字符串作为 Cut 的输出字段分隔符

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:50 25 4
gpt4 key购买 nike

如何通过 --output-delimiter="" 使用 cut?我想使用 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

预期输出:基本上我想在输出中排除 ^@

棕榈
欧德尼特
斯内贝特
马里茨
埃里森
怀特赫斯特

谢谢。

最佳答案

输出分隔符不是空字符串,可能是 NULL 字符。你可能想试试

cut -d, -f 3,6 --output-delimiter=$'\00' file1.csv

(假设你的 shell 支持 $'...'-quoting;bashzsh 在这里没问题,其他的不确定) .

编辑:

如果输出分隔符设置为空字符串,

cut 显然会放置 NULL 字符。我没有办法解决它。

如果 awk 是一个可接受的解决方案,那么这将起到作用:

awk -F, '{print $3 $6}' file*

如果你想更详细和明确:

awk 'BEGIN{FS=","; OFS=""}; {print $3,$6}' file*

FS="," 将字段分隔符设置为 ,OFS="" 将输出字段分隔符设置为空字符串。

关于linux - 空字符串作为 Cut 的输出字段分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com