クマの手も借りたい
茶トラネコ(@kumanotemo)です。上場を控えたITベンチャーを2社も退職してフリーランスの道を選んだ放浪エンジニアです。
Linux

sedでシングルクォートのエスケープ

sed でシングルクォートをエスケープしようとしたら構文として認識されない。

例えば以下の文字列が書かれたファイルがあったとする。

$ vi hoge.txt

aaa'bbb

ここで以下のコマンドを実行すると、コマンドが成立していない状態となる。

$ sed -e 's/'//g' hoge.txt

どうやら、’ ではエスケープしてくれないようだ。

というよりも、囲んでいる文字の問題。

ここでは sed でシングルクォートを置換する方法を紹介します。

シングルクォートのエスケープ

ちなみに、下記の通りダブルクォーテーションで sed の引数を囲んでやるとうまくいく。

これは想定通り。

$ sed -e "s/'//g" hoge.txt

同じことを perl でおこうなうと以下の通り。

$ perl -i.bak -ne "s/'//g;print;" hoge.txt

ってことで、純粋にエスケープの問題。

シングルクォートを使ってシングルクォートのエスケープ

置換対象のシングルクォートをエスケープしてシングルクォート囲えばば、両サイドをシングルクォートで囲んでも問題ない。

ちょっとややこしいですが・・・。

$ sed -e 's/'\''//g' hoge.txt
現場のプロから学ぶSEO技術

SEO について詳しくないけどこれから学んでみたい方。

これまでの小手先の SEO に対する技術には詳しいけど、マーケティングやソーシャル要素を組み合わせた今時の SEO をもう一度勉強してみたい方にオススメです。

あなたにオススメ