0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

特定の文字列を含む行のみを対象に、大文字を小文字に変換するテクニック

Last updated at Posted at 2024-01-25

特定の文字列を含む行だけ、大文字を小文字にしたいとき、エディタで行うのは非効率です。
そんなとき、sedが便利です。macの場合にはGNU版を入れてからgsedコマンドを呼び出します。

GNU版のsedをmacにインストール

$ brew install gnu-sed

今回はこのような置換を行います。
image.png

上記の例は、このコマンドで書き換えた結果です。
-iオプションの後ろに文字列を指定すれば、バックアップファイルが作れます。

$ gsed -i '/name:/ s/[A-Z]/\L&/g' models/metering/models.yml

特定の文字列より後ろだけ小文字にしたい時もあります。
gsed(GNU版のsed)で行の最後で宣言される"AS"の後ろだけを小文字に置換する例は次の通りです。

Pasted_Image_2024_01_26__14_41.png

今回は、複数ファイルを対象に一括で置換しています。

# 対象のファイルを * 付きで指定しているので、複数ファイルを一括で置換できます
# -i オプションを足すとファイルを上書きできます
$ gsed -E 's/(.+)(AS )([^[:space:]]+)/\1\2\L\3/g'  models/metering/*.sql

なかなか便利なコマンドだったと思います。置換の作業を効率化できましたね!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?