Bash

用正則表達式空間替換文字空間

  • April 13, 2018

我想改變一個字元串

This is a string

This\sis\sa\sstring

但是無論我是否逃脫 tr 都不適合\

string="This is a string"
regex=$(echo "$string" | tr " " "\\s")
printf "$regex"

我只是得到

Thississasstring

我認為,您的方法的主要問題是tr音譯單個字元 - 所以即使您成功引用'\\s'它也不會按照您想要的方式工作(它可能只是用 替換空格\)。

在這種情況下,您根本不需要外部實用程序:

string="This is a string"
echo "${string// /\\s}"
This\sis\sa\sstring

引用自:https://unix.stackexchange.com/questions/437422