BashでファイルにCRLFが含まれているかを判断してLFに置換する
Bashで、テキストファイルの行末コードがCRLFになっているかを、なるべく短くてビルトインのコマンドで判断する・置換するコードです。
ファイルにCRLFが含まれているかを判断する
grep -U $'\r' winfile.txt
if
文で処理を分ける場合
if grep -q -U $'\r' winfile.txt; then
# CRLFである場合の処理
else
# そうでない場合の処理
fi
行末のCRLFをLFに統一する
sed 's/'$'\r''$//' winfile.txt
置換した結果を別ファイルに吐き出す場合
sed 's/'$'\r''$//' winfile.txt > out.txt
直接ファイルを上書きする場合
sed -i 's/'$'\r''$//' winfile.txt
grep -U $'\r' winfile.txt
if
文で処理を分ける場合if grep -q -U $'\r' winfile.txt; then
# CRLFである場合の処理
else
# そうでない場合の処理
fi
sed 's/'$'\r''$//' winfile.txt
置換した結果を別ファイルに吐き出す場合
sed 's/'$'\r''$//' winfile.txt > out.txt
直接ファイルを上書きする場合
sed -i 's/'$'\r''$//' winfile.txt
macOSなどBSD系だと、バックアップ拡張子が必要。
sed -i.bak -e 's/'$'\r''$//' winfile.txt
Author And Source
この問題について(BashでファイルにCRLFが含まれているかを判断してLFに置換する), 我々は、より多くの情報をここで見つけました https://qiita.com/kulikala/items/a9d0938a4e481dec1257著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .