grep adalah alat yang hebat untuk menelusuri file dan input standar di Linux dan mampu mencocokkan pola string dan Regex. Namun, terkadang perlu untuk mengontrol jenis file yang dicari grep, dan grep memiliki flag bawaan untuk melakukan hal itu.
Hanya Menyertakan File Tertentu di grep Searches
Secara default, grep akan mencari semua file di folder tertentu dan subfoldernya jika Anda memanggil dengan tanda -r rekursif. Ini akan mengambil semuanya, tetapi jika Anda hanya menginginkan ekstensi tertentu, opsi yang ingin Anda gunakan adalah --include.
The --include flag memberi tahu grep untuk hanya menyertakan file yang cocok dengan pola tertentu. Jika ditentukan, grep akan memperlakukan semua tanda penyertaan sebagai daftar putih. Anda dapat menggunakan ini dengan karakter glob Linux apa pun, seperti wildcard untuk mencocokkan semuanya termasuk ekstensi tertentu:
grep -inr --include *.txt "foo" ~/folder
Perhatikan bahwa ini diloloskan dengan garis miring karena memungkinkan untuk nama file untuk memiliki tanda bintang di dalamnya. Anda juga dapat menentukan beberapa --include flag, misalnya, menelusuri semua file sumber HTML, JS, dan CSS di wwwroot:
grep -inr --include *.html --include *.css --include *. js "foo" ~/folderbspAnda juga dapat mengecualikan nama file tertentu, yang akan tetap cocok dengan semuanya kecuali glob, bertindak sebagai daftar hitam di atas konfigurasi yang ada:
grep -inr --exclude *.txt "foo" ~ /folder
Ada juga tanda untuk mengecualikan seluruh direktori sekaligus:
grep -inr --exclude-dir config "foo" ~/folderMenggunakan find Alih-alih
Sebagai alternatif, jika Anda lebih suka menggunakan utilitas find untuk menelusuri file, Anda dapat menghubungkannya ke grep menggunakan pipa dan xarg. find dapat melakukan penelusuran dengan pola dan Regex, dan memiliki sejumlah keunggulan, termasuk dapat memfilter file dengan mudah berdasarkan metadata seperti ukuran, tanggal dibuat dan diubah, dan pengenal Linux lainnya.
Perintahnya agak tumpul, seperti yang Anda lakukan perlu menggunakan -print0 di akhir find untuk mencetak satu daftar baris, lalu meneruskannya ke xargs -0 dan grep dari sana.
find ./ -type f -iname "*.txt" -print0 | xargs -0 grep "foo"
Itulah berita seputar
Cara Menggunakan grep Secara Rekursif Dalam Ekstensi File Tertentu, semoga bermanfaat.
Disadur dari HowToGeek.com.