Bagaimana cara menggunakan grep untuk mencocokkan nama domain?


4

Saya punya daftar url seperti:

hxxp://url.com/subpage.html
hxxp://www.url2.com/index.php
hxxp://subdomain.url3.com/somepage.php
...

Bagaimana saya bisa menggunakan grep untuk mencocokkan nama domain saja?

Semua url memiliki / setelah domain. Dan ada banyak tlds, tidak yakin berapa banyak, daftarnya cukup besar.

Jawaban:


5

Untuk menggunakan regex non-serakah dengan grep Anda harus menggunakan -P opsi dan -o opsi hanya menampilkan bagian yang cocok. Anda juga perlu menggunakan lookarounds agar bagian dari pertandingan tidak termasuk dalam output.

grep -Po '.*?//\K.*?(?=/)'

Contoh:

$ echo 'hxxp://subdomain.url3.com/somepage.php' | grep -Po '.*?//\K.*?(?=/)'
subdomain.url3.com

0

Ada tempat yang bagus untuk menguji keterampilan regex Anda sini . Ekspresi seharusnya seperti

.*?//(.*)/

Anda harus mengulang semua hasil. Pada halaman yang saya berikan kepada Anda, Anda dapat menempatkan ekspresi ini dan alamat web dan kemudian akan menunjukkan kepada Anda apa yang cocok. Juga ingat bahwa Anda akan memiliki variabel yang diambil hanya untuk waktu yang terbatas.


Itu tidak akan berhasil http://url.com/directory/page.html
Karl Bielefeldt

0

Jika mereka hanya memiliki satu TLD setelah domain maka ini harus bekerja (saya anggap Anda ingin mengecualikan subdomain):

[^\./]*\.[^\./]*/

Ini masih memiliki garis miring, tetapi Anda bisa langsung menyalurkannya sed.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.