我的任务很小。
我应该写:
data="duke,rock,hulk,donovan,john"
在下一个变量中,我应该更改第一个变量的分隔符。
data2="duke|rock|hulk|donovan|john"
在bash上执行此操作的正确方法是什么?
这是脚本的一小部分,我该做什么。
例如,我使用构造" WHILE-GETOPS-CASE"在参数中使用用户名来排除它们。
ls /home/ | egrep -v $data2
答案 0 :(得分:6)
您可以使用扩展轻松替换单个字符:
data="duke,rock,hulk,donovan,john"
data2=${data//,/|}
echo "$data2"
分解语法:
${data
表示“根据变量data
中找到的值展开; //
表示“搜索所有出现的”; /
表示“替换为以下内容”。请注意,某些字符可能需要转义,但不能转义为逗号和竖线。
然后你可以像这样过滤结果:
ls /home/ | egrep -v "$data2"
答案 1 :(得分:1)
另一种非常类似的方法是使用tr
(翻译或删除字符):
data="duke,rock,hulk,donovan,john"
data2=$(echo $data | tr ',' '|')
echo "$data2"