在特定字符前添加反斜杠

yae*_*ael -4 linux sed text-processing

我们的文件中有很多“%”字符

我们想在每个“%”之前添加反斜杠

作为

\%
Run Code Online (Sandbox Code Playgroud)

例子

%TY %Tb %Td %TH:%TM %P
Run Code Online (Sandbox Code Playgroud)

\%TY \%Tb \%Td \%TH:\%TM \%P
Run Code Online (Sandbox Code Playgroud)

如何用 sed 做到这一点?

gle*_*man 5

很简单

$ echo '%TY %Tb %Td %TH:%TM %P' | sed 's/%/\\%/g'
\%TY \%Tb \%Td \%TH:\%TM \%P
Run Code Online (Sandbox Code Playgroud)

但是您可以使用 bash 参数替换来完成相同的操作

$ str='%TY %Tb %Td %TH:%TM %P'; backslashed=${str//%/\\%}; echo "$backslashed"
\%TY \%Tb \%Td \%TH:\%TM \%P
Run Code Online (Sandbox Code Playgroud)