【问题标题】:bash stdout and ampersandsbash 标准输出和 & 符号
【发布时间】:2015-03-19 15:49:09
【问题描述】:

我有一个大的 csv (foobar.csv, delimiter = tab),里面有这样的内容

foo /Category1 & Category2
bar /Category3 & Category4
...

这个命令

cut foobar.csv -f2 | uniq

将打印

/Category1 & Category2 
/Category3 & Category4

等等……

我想把它放在一条线上,所以我试过了

echo -n "$(cut foobar.csv -f2 | uniq)"

但这会打印一些神秘的东西,例如

/Cat4ory

有没有人知道为什么会发生这种情况,或者我如何才能使类别上线?

理想情况下,我想将输出转换为可以在 for 循环中使用的数组。

【问题讨论】:

  • 该 echo 命令不会删除内部换行符,因为您引用了命令替换。实际上,echo 毫无意义。确保您的文件没有 DOS 换行符。他们混淆了输出。如果您想将输入逐行读取到数组中,请参阅mywiki.wooledge.org/BashFAQ/001

标签: bash csv text echo


【解决方案1】:

在你的 cmd 管道上放一个tr -d '\n'。如果有dos换行符,放tr -d '\r\n'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    相关资源
    最近更新 更多