linux - 用于打印具有分隔符的变量的 Shell 脚本

标签 linux bash shell sed

我有一个 shell 脚本,它获取一堆值。我根据定界符 (,) 将它分开。现在我想在 for 循环中一个一个地打印它。 例如

var=/a/b/c,d/e/f/,x/y/z
for i in $(echo $var | sed "s/,/ /g")
do
echo $i
done 

输出为空,预期输出为

/a/b/c
d/e/f/
x/y/z

最佳答案

你不需要循环。

sed 's/,/\n/g' <<< "$var"
sed 'y/,/\n/' <<< "$var"
tr ',' '\n' <<< "$var"
echo "${var//,/$'\n'}"

它们都能产生所需的输出。

关于linux - 用于打印具有分隔符的变量的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53265087/

相关文章:

linux - 如何在构建期间保存 docker 容器状态?

linux - posix read() 可以从管道接收少于请求的 4 个字节吗?

bash - 使用系统执行某些操作时如何防止代码注入(inject)?

Bash:将 ping 对 SIGQUIT 的中间统计信息捕获到变量

Git post-commit hook 作为后台任务

linux - EC2 ssh-add 身份不是 "stick"

将 kmalloc 内存块转换为多个结构

Bash IFS 忽略行尾的分隔符

mysql - 确保脚本执行或在计划错过时踢掉它

shell - 在 Unix 中获取前一天的日期