'^M$'をどうやってgrepできますか? [コピー]

'^M$'をどうやってgrepできますか? [コピー]

字幕(.srt)ファイルから行を抽出しようとしています。特定の行番号を検索すると、期待した回答が得られます。

% grep -e "^817" ponyo.srt                                             
817
%

ただし、キャリッジリターン(またはキャリッジリターンとEOL)を含む行を見つけようとすると、空の行が表示されます。

% grep -e "^817\r" ponyo.srt 

% grep -e "^817^M$" ponyo.srt

%

以下は、「cat -e」を使用して隠し文字を表示するテキストファイルです。

% cat -e ponyo.srt 
1^M$
00:04:38,478 --> 00:04:43,381^M$
The Beginning^M$
^M$
2^M$
00:04:44,751 --> 00:04:51,122^M$
PONYO ON THE CLIFF BY THE SEA^M$
^M$
474^M$
01:00:23,016 --> 01:00:25,041^M$
Stay here with Ponyo.^M$
^M$
475^M$
01:00:25,285 --> 01:00:28,618^M$
I'm going too.^M$
Let's take Ponyo with us.^M$
^M$
817^M$
01:40:08,532 --> 01:40:13,834^M$
<i>Oh he 's my favorite little boy</i>^M$
^M$
823^M$
01:40:32,456 --> 01:40:38,156^M$
Studio Ghibli^M$
^M$
824^M$
01:40:39,530 --> 01:40:42,624^M$
The End^M$
^M$
825^M$
01:40:42,766 --> 01:40:45,792^M$
English translation by^M$
Jim Hubbert and Rieko Izutsu-Vajirasarn^M$
English subtitles by^M$
Aura^M$
^M$
%

行の終わりを探して結果から行全体を取得するにはどうすればよいですか?

編集する:追加するには、期待どおりにEOLを検索しても結果は返されません。

% grep -e "^817$" ponyo.srt 
%

ベストアンサー1

(答えをくれた@steeldriverに感謝します。)

で述べたようにこの投稿 grep --colorgrep が端末に応答を書き込む方法を変更して、^M画面の書き込みを妨げます。私はalias grep='grep --color=auto'これをbash設定で使用しています。この問題を解決し、永続的なソリューションを作成するためにエイリアスをバイパスするために、エイリアスなしで\シェルでgrepを使用しました。

% \grep -e "^817^M" ponyo.srt
817
% 

おすすめ記事