11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【VSCode】改行コードをCRLFからLFにする

Last updated at Posted at 2018-07-19

概要

MacとWindowsの両方でコードを書いているときに、Windows側で改行コードがCRLFであることによるエラーが起きてしまうため、全ファイルの改行コードをLFにする必要があった。
最初はファイルは少ししかなかったがファイルが増えてきたのでさすがにめんどくさくなって一撃で置換できるようにした。

利用者に求めること

Windows on bash を使えるようにしておく。

コマンド

LRに置換したいディレクトリで以下を実行する。

find . -type f -print0 | xargs -0 sed -i 's/\r//g'

コマンドの説明

find コマンドで現在のディレクトリを再帰的に走査する。
-type f ではファイルのみ、 -print0 は走査した結果をnull文字区切りにして返却するという指定。

xargs コマンドでは -0 ( --null でも可)を指定することでパイプで渡された文字をnull文字で区切って sed コマンドに渡す。
sed コマンドの -i ( --in-place でも可)ではファイルを直接変するオプション。s/\r//g については以下とのこと。ちなみにsedコマンドでは\nという文字を正規表現で拾うことができないらしいので、s/\r\n/\n/g とはならないことに注意。

「s」コマンドは、デフォルトでは1行の処理で最初に見つけたパターンを置き換えたら終了します。各行に含まれる全てのパターンを置き換えたい場合は、「s」コマンドに「g」オプションを付けて実行します。
@IT【 sed 】コマンド(基礎編その4)

参考

https://stackoverflow.com/questions/3891076/how-to-convert-windows-end-of-line-in-unix-end-of-line-cr-lf-to-lf
https://qiita.com/wnoguchi/items/1b5d18118728b62e50fb
http://x68000.q-e-d.net/~68user/unix/pickup?find
http://www.atmarkit.co.jp/ait/articles/1801/19/news014.html
http://www.atmarkit.co.jp/ait/articles/1610/17/news015.html

11
10
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
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?