Windowsコマンドラインで特定のパターンのファイル名を見つけますか?


10

ディレクトリとそのサブディレクトリで特定のパターンのファイルを見つけようとします。私は試した:

C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found

次のようなファイルを見つけたい

abc.txt.r12222
tjy.java.r9994

数字が文字rの後に追加される場合、SVNによって行われます。

何が悪いのですか?


3
SUへようこそ!stackexchangeサイトでは、回答が役に立った場合、人々に感謝する方法は、回答を賛成し、問題が解決した場合は回答を(回答の左側にあるチェックマークをクリックして)受け入れることです。私が言っているのは、あなたが質問に対して受け取った答えをどれも受け入れなかったように見えるからです。
terdon 2013年

回答:


9

数日前、Stack Overflowでこれに答えました。 /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872

あなたの場合、それは次のようになります:

dir * /s/b | findstr \.r[0-9]+$

更新

他の例の1つである「.r [0-9] * $」の*は、*数量詞が0以上を意味するため、「r」で終わるレコードも検索します。


こんにちはcpattersonv1-dir * / s / bと応答してくれてありがとう| findstr \ .r [0-9] * $は機能します
chz

findstrは1つまたは多くの記号「+」を認識しないようです
Scott Chu

@ScottChuが例を示して新しい質問を開始します。(5年前にこれに回答しました。)
AbsoluteƵERØ

0

grepWindowsに移植され、正規表現を使用して行を照合できるUNIXライクなシステム用のユーティリティを使用してそれを行うことをお勧めします。

grepMinGWのMSYSパッケージに含まれています。インストーラーはここにあります。(MSYSのみをインストール)

次に、MSYSツールをPATH変数に追加する必要があります。MSYSのdafeultディレクトリは C:\MinGW\msys\1.0\bin

最後に、次のコマンドで検索を実行できます。

ls -a | grep ^.+\..+\.r[0-9]+$

...その手段:「からの出力を取得するls -a(隠しファイルを含むファイルリスト)とに渡すgrepような外観のようなマッチライン、 .R [0-9] *(アスタリスクそれぞれに象徴される、少なくとも1つの文字で)」。


こんにちはgronostaj応答に感謝します。私が試した$ ls -R | grep -H ^.*[0-9]$ (standard input):res.jar.r469621 (standard input):res.jar.r464460 (standard input):test.jar.r46521 (standard input):test.jar.r46970
2013年

こんにちは私はまだファイル名の完全なパス名を取得できません。それ、どうやったら出来るの ?例c:\pager\test.jar.r46521:(標準入力):test.jar.r46521とは対照的に
2013年

ls | grepはdirと同じです| Windowsのfindstr。
AbsoluteƵERØ

0

あなたはこれを試すことができます:

dir /a| findstr .r[0-9]*$

ヘルプを参照するには、と入力してくださいfindstr /?


こんにちはmfm4aa返信ありがとう-うまくいかないようです; 私はすべての組み合わせを試してみましたが、どれもantにリストされた回答を提供しません。例:インラインC:\Temp>findstr /S /B [0-9] . C:\Temp>findstr /S /B r[0-9]$ . C:\Temp>findstr /S /B $.*r[0-9]$ C:\Temp>findstr /S /B $.*r*$ C:\Temp>findstr /S /B $.*r..*$ C:\Temp>findstr /S /B $.*r\..*$ C:\Temp>findstr /S /B /R $.*r\..*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" . C:\Temp>findstr /S /B /R "$.*\..r[0-9]$" . C:\Temp>findstr /S /B /R "$.*[0-9]*" . C:\Temp>findstr /S /B /R "$*[0-9]*" .
chz

お試しください:C:\Temp>dir /aa| findstr .r[0-9]*$
Endoro

こんにちはmfm書き込みありがとう-私はまだ見つけられませんC:\Temp>dir /aa | findstr .r[0-9]*$ File Not Found
chz

:)単に入力しdir /aa| findstr .r[0-9]*$ます。これはここで機能します...
Endoro

エンドロこんにちは。それはうまくいきませんでした-それはファイルが見つからないと言う
CHZ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.