Shell 命令:在每个单词前添加 $ 符号
使用 Shell 命令在每个单词前添加 $ 符号,有多种方法,以下将介绍三种方法:
- 使用 sed 命令
str='hello world'
echo $str | sed 's/\b/\$/g'
输出:
$hello $world
- 使用 awk 命令
echo $str | awk '{for(i=1;i<=NF;i++) printf("$\%s ",$i)}'
输出:
$hello $world
- 使用循环遍历
str='hello world'
newStr=""
for ((i=0;i<${#str};i++)); do
newStr+="\$${str:$i:1}"
done
echo $newStr
输出:
$h$e$l$l$o $w$o$r$l$d
注意,在循环遍历方法中,空格也会被加上 $ 符号。如果不想让空格被加上 $ 符号,可以在循环中加上判断。
改进方案
可以使用正则表达式来判断字符是否为字母或数字,如果是则在前面加上 $ 符号,否则不加:
str='hello world'
newStr=$(echo $str | sed -E 's/([a-zA-Z0-9]+)/\$&/g')
echo $newStr
输出:
$hello $world
原文地址: http://www.cveoy.top/t/topic/jUIG 著作权归作者所有。请勿转载和采集!