読者です 読者をやめる 読者になる 読者になる

学習履歴

プログラミングなどの学習履歴

Perlコマンドでの文字列の置換

シェルスクリプトPerlコマンドを使う機会がありました。

 

Perl正規表現を使えるのでかなり便利なコマンドでした。

 

文字列の置換は最初はsedコマンドを使ってみましたが、

なぜか文字列が置換されずにいたのでなぜか調べてみると

こちらの記事に原因が書いていました。

qiita.com

 

見るとPerlコマンドの方がより使い勝手が良さそうなので、

下記のコマンドを記述してシェルを実行しました。

 

perl -p -i -e 's/\,\"\r\n/\,\"`\r\n/g' ディレクトリ/ファイル名

 

正規表現の部分は今回は上記のような形に変える必要があったので、

気にしないでください。

 

コマンドのオプションについてですが、

-p・・ファイルに出力結果をだす

-i・・出力結果をファイルに返す。-pだけだと標準出力

-e・・与えられた文字列をスクリプトとして実行。今回だと正規表現に該当する箇所があれば置換するという命令

 

ちなみにPerl正規表現で空白を\sで表すと書いてあるサイトを見つけて試してみると、空白と認識してくれない。どうしたかというとそのまま空白キーを押して終わり。

空白に関して特に正規表現を使うことはありませんでした。

 

補足

コマンド -P 正規表現 ファイル名

この-PをつけることでPerlで使われるものと同じ正規表現が使えます。