特定の文字の前にバックスラッシュを追加

特定の文字の前にバックスラッシュを追加

ファイルに「%」文字がたくさんあります。

各「%」の前にバックスラッシュを追加したいと思います。

〜のように

\%

はい

今後

%TY %Tb %Td %TH:%TM %P

後ろに

\%TY \%Tb \%Td \%TH:\%TM \%P

sedでこれを行う方法は?

答え1

とても簡単です

$ echo '%TY %Tb %Td %TH:%TM %P' | sed 's/%/\\%/g'
\%TY \%Tb \%Td \%TH:\%TM \%P

ただし、bashパラメーターの置換を使用して同じ操作を実行できます。

$ str='%TY %Tb %Td %TH:%TM %P'; backslashed=${str//%/\\%}; echo "$backslashed"
\%TY \%Tb \%Td \%TH:\%TM \%P

関連情報