- 環境: RHEL, bash
- 改行記号に気を付けようね!
- システム達、仲良くしてくれ!
grep "hoge$" fuga.txt
何回やっても行末の hoge に引っかからない。
Windows の Visual Studio Code で同じ正規表現使うと引っかかる。なんで……?
→ 切り分けして検索して15分は無駄にした。プロキシサーバに阻まれた結果、検索の効果は殆どなかった。fuga.txt で使われている改行記号が CRLF だからでした本当にありがとうございました。
dos2unix fuga.txt grep "hoge$" fuga.txt
いけました。
そういうもんなんやな。情弱ですんません……。 unix.stackexchange.com
これまでスクリプトから実行後の出力ファイルから Linux で作成していたため、そんなこと考えたことすらなかったわ。
以下は知識としてはあったが、実害を被るとは思ってなかった。頼むわ仲良くしてくれ……。
米マイクロソフト(Microsoft)社はオペレーティングシステム(OS)製品のMS-DOSや後継のWindowsシリーズで、テキストデータの標準の改行コードとしてCRLFを採用したため、これらのシステム上でテキストファイルを作成すると改行がCRLFとして記録される。
一方、米アップル(Apple)社の旧Mac OSシリーズではCR単独を、UNIX系OSや現行のmacOSシリーズ(Mac OS X)ではLF単独を標準の改行コードに採用したため、Windowsやこれらのシステムの間でテキストデータを交換する際には改行コードの変換などが必要となる場合がある。 e-words.jp
リトルエンディアンとビッグエンディアンで、ソケットプログラミングだったかニーモニックだったかで泣きそうになったの思い出した。