从 bash for 循环生成的字符串中删除最后一个逗号

米克

我正在处理一种情况,我需要从数组中创建一个逗号分隔的列表到一个 heredoc 并删除最后一个逗号。我正在使用 bashfor管道sed,它正在擦除所有逗号而不是最后一个。一个简化的例子如下:

x=$(for i in a b c; do echo "${i}",; done| sed 's/,$//')
echo $x
a b c

期望的输出:

a, b, c

任何建议表示赞赏。

约翰1024

问题是,默认情况下,echo每次调用时都会添加一个新行并sed在这些新行上进行操作。您看不到这一点,因为当 bash 处理时$(...),这些新行将转换为空格。因此,要在对您的方法进行最小更改的同时解决问题:

$ x=$(for i in a b c; do echo -n "${i}",; done| sed 's/,$//') ; echo $x
a,b,c

该选项-n告诉echo不要添加新行。

如果您希望项目之间有空格,可以轻松添加它们:

$ x=$(for i in a b c; do echo -n "${i}, " ; done| sed 's/, $//') ;echo $x
a, b, c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从bash中的字符串中获取最后一个数字?

从字符串中删除最后一个逗号

从最后一个逗号开始删除字符串中的所有字符

一个Bash脚本,用于检查以逗号分隔的字符串列表中是否存在字符串

如何用另一个字符替换bash中字符串的最后一个字符

从Bash中的另一个变量中删除字符串匹配

Bash-如何删除字符串中的第一个和最后一个斜杠(如果存在)?

如何使用“ sed或awk”从bash行中删除最后一个逗号

字符串拆分并提取bash中的最后一个字段

如何使用Bash删除文件名中的最后一个字符?

如何删除bash中数组的最后一个元素?

在bash shell脚本中,编写一个遍历字符串值的for循环

Bash子字符串最后出现的一个字符

如何检查Bash中最后一个字符串字符是否等于'*'?

Bash脚本:删除字符串中最多包含一个短语的字符吗?

在bash中获取由特定分隔符分隔的字符串的最后一个字段

在bash中最后一个点之后替换字符串

bash字符串中的最后n个单词

从while循环中的字符串中删除最后一个逗号

Bash删除字符串中的第一个和最后一个字符

如何使用Bash删除json文件中的最后一个逗号?

Bash:如何在循环生成的变量的末尾消除逗号

在 bash 中,如何运行包含字符串的最后一个命令?

如何在 bash 脚本中使用 Bash/Sed/Awk/Perl 删除分隔字符串的最后一个元素

bash:在最后一个分隔符之前剪切特定字符串

如何从字符串中的每一行中删除最后一个逗号?

在bash中的最后一个所需字符上拆分字符串

用python删除字符串中的每个逗号,除了最后一个逗号

Bash脚本产生一个“循环字符串”?