sedでのシングルクォートの置換

sedでシングルクォートの置換をするためには、特別な記述が必要です。

簡単なのは、ダブルクォートで囲む方法です。

$ cat ./singlequote.sh 
#!/bin/sh
echo "hiro345's text" | sed -e "s/'//g" -

上記スクリプトの実行は下記のようになります。

$ ./singlequote.sh 
hiro345s text

シングルクォートが消えていることがわかります。

ところで、どうしてもシングルクォートで囲みたいときもあります。その場合は、シングルクォートをバックスラッシュでエスケープしたものをさらにシングルクォートで囲む必要があります。

$ cat ./singlequote.sh 
#!/bin/sh
echo "hiro345's text" | sed -e 's/'\''//g' -

上記スクリプトの実行は下記のようになります。

$ ./singlequote.sh 
hiro345s text

こちらも、シングルクォートが消えていることがわかります。ダブルクォートで囲むよりも面倒ですね。

関連書籍:

同じタグの記事: bash
同じタグの記事: sed
同じタグの記事: shell script
同じカテゴリの記事: Linux
関連書籍: bash