質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

4回答

2987閲覧

unix環境における改行コードがCRLFのファイル一覧の取得方法について

jastaway

総合スコア35

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2021/11/10 02:26

unix環境で改行コードがCRLFのファイルの一覧を取得したいと思っています。

現在は以下のコマンドで試していますが、ファイル名というより改行コードの行が表示されてしまいます。これでもいいのですが、どのファイルがCRLFなのかが一目見ただけでは不明なので、ご教授いただければと思います。

find ./ -type f | xargs cat -v | grep '^M'

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/11/10 02:37

どうしたいんでしょうか。問題が見えません 現状どうなっていて、問題がどこにあって、これをどうしたいのかってのを詳しく説明しよう
jastaway

2021/11/11 08:32

他の回答者の方々は理解していただけたようです。
guest

回答4

0

ベストアンサー

grepのみで可能です。

sh

1# sh/bash/csh/tcsh/zsh 2grep -Ilrs `printf "\r\n"` .

fish

1# fish 2grep -Ilrs (printf "\r\n") .

GNU grep 3.7, BSD grep 2.5.1の両方の実装で動作を確認しました。

-I, --binary-files=without-matchでバイナリを無視し、-l, --files-with-matchesでファイル名のみを表示し、-r, --recursiveでファイルを再帰的に検索し、-s, --no-messagesでエラーメッセージを消しています。改行コードの展開にはビルトインコマンドであるprintfを使用しました。最後に現在のディレクトリを意味する.をファイル用のパターンとして与えています。

投稿2021/11/10 02:54

編集2021/11/10 02:56
itepechi

総合スコア248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jastaway

2021/11/11 08:29

詳細な回答ありがとうございました。大変助かりました。ベストアンサーにさせていただきます。
guest

0

GNU grep を利用する場合は -I オプション(バイナリファイルを除外)と、-m 1 オプション(1回マッチしたら停止)、-r(recursive search)を付けるとよろしいかと思います。

bash

1bash$ grep -I -r -l -m 1 -e $'\r$' .

投稿2021/11/10 03:41

melian

総合スコア19803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/11/10 11:18

-l は、-m 1 を含意していますので、-m 1 は不要です。
melian

2021/11/10 11:23

なんと、そうでしたか。ありがとうございます。
jastaway

2021/11/11 08:29

ご回答ありがとうございました。
guest

0

find ./ -type f | xargs file | grep 'with CRLF' | sed -e 's/:..*//'

投稿2021/11/10 02:44

shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jastaway

2021/11/11 08:30

ご回答ありがとうございました。
guest

0

... | xargs grep -l "\r$" でいかがでしょうか。

投稿2021/11/10 02:38

編集2021/11/10 02:48
int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jastaway

2021/11/11 08:30

ご回答ありがとうございました。やってみましたがなぜかうまくいきませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問