1
cat file.txt | grep -x "\d*"
grep: \Documents and Settings: Is a directory

file.txt数字のみの行を検索したいのですが、grep\d*はパターンではなくファイルのワイルドカードとして表示しているようです。それがパターンであり、grepするものに標準入力を使用する必要があることをどのように指定できますか?

ファイルは日時スタンプの行でいっぱいで、文字で終わるものもあれば、そうでないものもあります。

20140110122200
20131208041510M
...

文字で終わらない行だけを取得しようとしています。

編集: cat でパイプする代わりに、ファイル名を設定しようとしました。それほど違いはありません。

C:\long\path>grep -ex "\d*" -f file.txt
grep: \Dell: Is a directory
grep: \Documents and Settings: Is a directory
4

1 に答える 1

0

catファイルをgrepに渡すために使用しているのはなぜですか?grep にファイル名を直接指定しないのはなぜですか?

grep -x '\d*' file.txt

あなたが見ている実際の問題は、*ワイルドカードが展開されていることだと思います。そのため、システム上の実際のディレクトリ (「d」で始まる) に言及するエラーが grep によって表示されます。

于 2014-01-10T19:27:37.227 に答える