Anonim

Cetakan ungkapan biasa global atau hanya grep adalah salah satu perintah yang paling serba boleh dan lazim dalam sistem Unix dan Linux. Perintah ini mencari fail input tunggal atau berganda dan garis corak yang sepadan. Akibatnya, anda mendapat output standard dengan garis yang hampir sama.

Jika anda tidak menentukan fail, grep menggunakan input standard untuk pembacaan dan kemungkinan besar akan menjadi output arahan lain. Pada keseluruhannya, grep mempunyai sintaks terus sama ada anda menggunakannya dengan atau tanpa nama fail.

Artikel ini memberi anda gambaran ringkas mengenai sintaks grep dan beberapa arahan asas yang anda boleh gunakan dengan atau tanpa nama fail.

Sebelum awak mula

Semua arahan grep mengikuti sintaks yang sama dan setiap parameter mempunyai fungsi tertentu. Inilah garis contoh:

grep PATTERN

Anda boleh menggunakan sejumlah OPTIONS dalam grep untuk mengawal output arahan dan nombor bermula pada sifar. PATTERN menunjukkan corak carian yang ingin anda gunakan. Bagi FILE, inilah nama atau nama fail pergi, tetapi parameter boleh ditetapkan kepada sifar.

Carian Rentetan dalam Output Perintah

Seperti yang ditunjukkan, anda tidak perlu menggunakan fail input tertentu. Output arahan lain boleh digunakan dalam grep untuk mendapatkan baris yang sama sepadan dengan corak. Ini boleh digunakan untuk menentukan proses mana yang aktif pada sistem. Ini adalah sintaks perintah sampel:

$ ps -ef | grep www-data

Output yang anda dapatkan sepatutnya kelihatan seperti ini:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: pool www
root 18272 17714 0 16:00 pts / 0 00:00:00 grep -color = auto -exclude-dir = .bzr -exclude-dir = CVS -exclude-dir = .git -exclude-dir = .hg -exclude- dir = .svn www-data
www-data 31147 12770 0 Oct22? 00:05:51 nginx: proses pekerja
www-data 31148 12770 0 Oct22? 00:00:00 nginx: proses pengurus cache

Terdapat satu cara untuk mengecualikan baris arahan yang mempunyai proses grep. Untuk ini, anda perlu menggunakan $ ps -ef | grep www-data | grep -v grep command.

Carian Word Grep

Anda boleh menggunakan perintah grep untuk mencari perkataan tertentu dalam fail pada sistem anda. Malah, tidak perlu menaip keseluruhan perkataan. Anda hanya boleh menggunakan gnu, sebagai contoh, dan output perintah semua perkataan yang mempunyai tiga huruf di dalamnya. Sintaks arahan ialah:

$ grep gnu / usr / share / words

Selepas melaksanakan arahan, output anda sepatutnya kelihatan seperti ini:

cygnus
gnu
interregnum
lgnu9d
lignum
magnum
magnuson
sphagnum
sayap

Sebaliknya, anda boleh mencari hanya perkataan atau rentetan huruf tertentu dan tidak termasuk segala yang lain. Untuk ini, anda perlu menambah -w atau -word - regexp kepada sintaks. Dalam kes ini, arahan contoh kelihatan seperti ini - $ grep -w gnu / usr / share / words .

Nota: Untuk tujuan tatabahasa, beberapa arahan mempunyai hentian sepenuhnya pada akhir. Anda tidak memerlukan tanda baca untuk grep. Kecualikannya apabila anda menyalin / menampal perintah tersebut.

Adakah Grep Case Sensitive?

Semua perintah grep adalah sensitif huruf secara lalai. Ini bermakna menggunakan huruf kecil dan huruf besar membuat perbezaan dalam arahan itu sendiri. Walau bagaimanapun, anda boleh menambah - i ( - mengabaikan - kes ) ke baris arahan dan membenarkan sistem untuk mencari kedua - dua perkataan huruf besar dan huruf kecil.

Sebagai contoh, arahan input anda mungkin kelihatan seperti ini zebra $ / grep -i Zebra / usr / share / words . Ia membolehkan output untuk memadankan sebarang gabungan huruf besar dan huruf kecil apabila ia mencari zebra.

Nombor Talian

Gunakan pilihan nombor-line atau hanya -n untuk menentukan bilangan garisan dengan rentetan yang sepadan dengan corak carian tertentu. Akibatnya, anda mendapat output standard dengan nombor baris di hadapannya.

Perintah yang tepat mungkin kelihatan seperti ini: $ grep -n 10000 / etc / services . Selepas pelaksanaan, output menyediakan semua padanan yang diperolehnya pada 10000 baris. Semak contoh di bawah:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Fail dalam Folder

Anda boleh meletakkan tanda bintang di sebalik perintah grep dan bukan nama fail. Menggunakan kriteria gnu sekali lagi arahannya kelihatan seperti ini $ grep gnu * dan output menyenaraikan fail yang mengandungi gnu . Penting untuk diperhatikan bahawa arahan semacam ini mengembalikan garis.

Nota: Dengan grep, baris merujuk kepada urutan aksara yang berjalan sehingga pecahan tertentu. Kecuali anda menapis carian, output mungkin mengandungi keseluruhan perenggan maklumat.

Ambil Langkah Seterusnya dengan Grep

Panduan ini hanya mencalarkan permukaan apa yang boleh anda lakukan dengan grep. Mungkin mengambil sedikit masa untuk mendapatkan semua kemungkinan dan berakhir, tetapi sintaksnya mengikuti prinsip yang agak mudah. Dan dengan beberapa amalan, anda boleh memperbaiki carian anda dengan sempurna, dengan atau tanpa nama fail.

Bagaimana untuk grep tanpa nama fail