如何在tr命令中传递可变空格字符



在shell脚本中,我想在使用tr但收到错误的函数中用空格替换所有下划线字符,因为我不知道如何将变量中的空格传递给tr

function sanitizeDirName() {
  local name=$1
  local f=$2
  local r=$3
  echo ${name##*/} | grep -E -o $re | tr $f $r 
}
sanitizeDirName "~/test_1" "_" " "

感谢

您需要引用您的变量,因为它们是根据用户输入填充的,并且可能有空格或元字符(正如三元组在注释中指出的那样):

echo ${name##*/} | grep -E -o "$re" | tr "$f" "$r"

如果要删除_,则可能需要使用-d标志

echo ${name##*/} | grep -E -o $re | tr -d $f

最新更新