君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

sedコマンドを使って、特定の文字列以降を削除〜ソースコードのコメントを削除したかったの〜

f:id:karoten512:20180314120142p:plain

いきさつ

sample.txtの内容は以下。

$aa = 'hoge'; // コメントだよ
$bb = 'fuga'; // コメントだよ

このファイルから、コメントだけ削除したい。

つまり、//以降だけ削除したい。

結論

sed -i '.bak' -e 's/\/\/.*//' sample.txt

解説

iオプション

これがない場合は、sedの結果を標準出力するだけ。

これがあると、sedの結果がそのままファイルに上書きされる。破壊的。

なお、-iの後にバックアップファイル用の拡張子を指定できる(macでは必須)

eオプション

正規表現を使用する時に使う。

まとめ

正規表現sedを組み合わせると本当に便利。