4つの文を含むテキストファイルがあり、 "me"で終わる文をgrepしたいのですが、grep "me$"を実行すると機能しません。
私は何を逃したことがありませんか?
(結果が1、2、4行になりたいです。)
編集:画像をテキストに置き換えます。
$ cat sm.txt
somebody once told me
somebodyoncetoldme
the world was
gonna roll me
$ grep "me$" sm.txt
$
ベストアンサー1
コメントからfile
テキストファイルをCRLF行末のあるASCIIテキストファイルとして識別すると述べました。これは、Windowsシステムでエディタを使用して作成されたDOSテキストファイルであることを別の方法で表現したものです。
Unix テキストファイルと比較して、DOS テキストファイルには、改行文字の前の各行末に追加のキャリッジリターン文字があります。そのため、正規表現が一致せず、実際に終わる行がなく、でme
終わります。me\r
これは\r
キャリッジリターンを作成する一般的な方法です。
回避策は、dos2unix
Unixシステムで使用する前に、変換ツールを使用してテキストファイルをUnixテキストファイルに変換することです。