使用Bash参数替换将标签替换为空格

Roo*_*ent 7 bash replace

如何${var//Pattern/Replacement}用空格替换制表符?

${var//\t/ } 对我不起作用。

JNe*_*ill 7

因为通过PuTTY在bash shell中键入实际的制表符不是那么简单,所以在此处添加。CTRL V TAB不起作用,因为CTRL V在Windows中被捕获为粘贴。

相反,我使用:

${var//$'\t'/ }
Run Code Online (Sandbox Code Playgroud)

例:

$ var="te"$'\t'"st"

$ echo $var
te st

$ echo ${var//$'\t'/i}
teist
Run Code Online (Sandbox Code Playgroud)

  • 可能会显示`echo“ $ var”`(实际上会显示制表符),而可能显示`echo $ var`(字符串拆分,因此将每一面作为一个单独的参数传递给`echo`,因此仅用空格分隔)。同样,`echo“ $ {var // $'\ t'/ i}”“可能无法解决当前/已知值`var`和健全的IFS的问题,但这是人们从和复制的更安全的做法。在其他地方使用。 (2认同)

Sto*_*ica 4

您需要输入实际的 TAB 字符:

var=${var// / }
           ^ that's really meant to be a TAB character
             but might not be visible on this site
Run Code Online (Sandbox Code Playgroud)

在命令行上,要插入 TAB 字符,请按ControlvTAB