Saya perlu melakukan grep rekursif di Windows, sesuatu seperti ini di Unix / Linux:
grep -i 'string' `find . -print`
atau metode yang lebih disukai:
find . -print | xargs grep -i 'string'
Saya terjebak hanya dengan cmd.exe, jadi saya hanya memiliki perintah bawaan Windows. Sayangnya saya tidak dapat menginstal Cygwin , atau alat pihak ke-3 seperti UnxUtils di server ini. Saya bahkan tidak yakin dapat menginstal PowerShell. Adakah saran yang hanya menggunakan cmd.exe built-in (Windows 2003 Server)?
windows
command-line
grep
Andy White
sumber
sumber
grep -i 'string' -R .
, seperti yang disarankan oleh @NathanFellman, menghindari masalah perintah yang terlalu panjang.Jawaban:
findstr
dapat melakukan pencarian rekursif (/ S) dan mendukung beberapa varian sintaks regex (/ R).sumber
Parameter memiliki arti sebagai berikut:
s
= rekursifp
= lewati karakter yang tidak dapat dicetaki
= tidak sensitif huruf besar / keciln
= mencetak nomor barisDan string untuk mencari adalah bit yang Anda masukkan setelah tanda kutip
/c:
sumber
spin
? Apakah ini baris teks yang harus dicari? Dan bukankah / g atau / f digunakan untuk menentukan file? Jadi ada apa dengan kawat gigi kotak?findstr /?
menjelaskan setiap parameter. s = rekursif, p = melewati karakter yang tidak dapat dicetak, i = case-sensitive, n = nomor baris cetak. Anda tidak perlu semua itu, tetapi saya menyukainya, danspin
mudah diingat. String untuk mencari adalah bit yang Anda masukkan setelah tanda kutip/c:
./?
, tetapi saya sebenarnya tidak tahu bahwa pengubah digunakan seperti/spin
. Saya pikir mereka digunakan seperti/s/p/i/n
./
. Ini satu. Tidak semua dari mereka membiarkan Anda melakukan itu. Anda tahu, cmd sangat istimewa.Saya baru saja mencari teks dengan perintah berikut yang mencantumkan saya semua nama file yang berisi 'teks pencarian' yang ditentukan.
sumber
Saya merekomendasikan alat yang sangat hebat:
utix asli utils:
Buka kemasannya dan masukkan folder itu ke dalam variabel lingkungan PATH dan voila! :)
Bekerja seperti pesona, dan ada lebih dari sekadar grep;)
sumber
Pencarian rekursif untuk
import
kata di dalamsrc
folder:sumber
sumber
Select-String
bekerja paling baik untuk saya. Semua opsi lain yang tercantum di sini, sepertifindstr
, tidak berfungsi dengan file besar.Ini sebuah contoh:
Catatan : Ini membutuhkan Powershell
sumber
Jika Anda memasang Perl, Anda dapat menggunakan ack , tersedia di http://beyondgrep.com/ .
sumber