在BASH中打印逗号分隔值

时间:2014-03-17 23:28:12

标签: bash

如何在没有逗号的情况下打印逗号分隔值。 例如

John,Smith 

会打印出来

John Smith

4 个答案:

答案 0 :(得分:2)

我选择parameter expansion作为我的武器。更具体地说,我使用bash参数扩展的search and replace feature

$ name="John,Smith"
$ echo "${name/,/ }"
John Smith

答案 1 :(得分:1)

假设您正在阅读文件:

while IFS=, read -ra names; do
    echo "${names[*]}"
done < file

第一行迭代文件的行,将每行读入数组&#34; names&#34;,使用逗号作为字段分隔符。 IFS变量仅在读取命令的持续时间内设置。然后使用默认值IFS(空格)的第一个char作为连接字符将数组连接成单个字符串。

答案 2 :(得分:0)

使用tr用空格替换逗号?

echo 'John,Smith' | tr ',' ' '

答案 3 :(得分:0)

您可以使用空格字符替换逗号。常见的工具是sed或tr:

NAME="John,Smith"
echo $NAME | tr , ' '
echo $NAME | sed 's/,/ /g'