やりたいこと
- Sassファイル中のCompass用の mixinを、普通のプロパティ表記に置き換えたい。
-
+border-radius(6px)
→border-radius: 6px
、または、+border-radius($size)
→border-radius: $size
みたいな置換がしたい - つまり、Gitにインデックスされた全Sassファイルから、
+border-radius(なんちゃら)
をborder-radius: なんちゃら
に置換したい
コマンド
$ git ls-files *.sass|LC_ALL=C xargs sed -E -i '' 's/\+border-radius\((.+)\)/border-radius: \1/g'
しくみ
-
git ls-files *.sass
でGitにインデックスされたファイルの中から、なんちゃら.sass の一覧を出す。 -
LC_ALL=C
は Mac のsed でsed: RE error: illegal byte sequence
が出てつらいのを回避。 -
xargs
で | の前のコマンドの結果を1行ずつ評価する。 -
sed -E
とすると、拡張正規表現を使って置換できる。 -
-i
はファイルを直接置換する。 -
's/\+border-radius\((.+)\)/border-radius: \1/g'
-
\((.+)\)
は ()内に何文字でも自由な文字列が入り、\1
は1つめの()を参照する - 後方参照という
-
正規表現、使えると便利ですね(ΦωΦ) 使いこなしたい…