2024年11月10日日曜日

改行をWindows形式からLinux形式にしつつ末尾のホワイトスペースを除去するコマンド


表題の通り「改行をWindows形式からLinux形式」にしつつ「末尾のホワイトスペースを削除」が必要な場面があったので、そのときのコマンドを備忘録として記事に残します。

コマンドはこちらです。
sed -i -e 's/\r$//' -e 's/[ \t]\+$//' file.txt

ディレクトリ内のファイルを一気に処理したい場合はfindコマンドでファイル一覧出してパイプで渡します。
find path-of-target-dir -type f | xargs sed -i -e 's/\r$//' -e 's/[ \t]\+$//'

動作確認環境はこちらです。
ubuntu: 22.04
bash: GNU bash, バージョン 5.1.16(1)-release (x86_64-pc-linux-gnu)
find: (GNU findutils) 4.8.0
sed: (GNU sed) 4.8

参考
How to change Windows line-ending to Unix version
'+' (one or more occurrences) not working with 'sed' command
sedでこういう時はどう書く?

0 件のコメント :