行の先頭の-を一瞬で取り除く|シェルスクリプト(MacOS)

git diffで差分を確認した際に行の先頭に-や+がつくことがあるとおもいます。時にはファイル全体で-や+がついてそれを取り除きたいな〜という場面があったのでシェルスクリプトを使ったら便利だったという話を書いてみます。Linuxでは若干オプションなどが変わるので適宜動かない時は調べてみてください。

sedコマンドで文字を置換する

まずはコマンドを確認してみます。

sed -i 'backupfile.txt' 's/^-//' file.txt

・オプションのiは直接ファイルを編集するという意味です。
・backupfile.txtはバックアップファイルとして編集する前のファイルを保存してくれます。
・次のシングルクォーテーションの中は正規表現で文字のパターンマッチを行なっています。
・sは置換をする(substituteの略)と言う意味です。
・次の/^-/は^が先頭を意味し/-/が-という文字を探すという意味になります。/検索する文字/置換後の文字/という構文に先頭を意味する^が付け加えられたのが/^-//で先頭の-を無しにするという意味になります。
・最後のfile.txtは直接編集するファイル名を指定しています。

コメント

タイトルとURLをコピーしました