Berikut ini cuplikan dari INPUT:
...
####################
Bala Bela;XXXXXX12345;XXXXXX12345678;A
SERVER345Z3.DOMAIN.com0
SERVER346Z3.DOMAIN.com0
SERVER347Z3.DOMAIN.com0
SERVER348Z3.DOMAIN.com0
ssh-dss ...pubkeyhere...
####################
Ize Jova;XXXXXX12345;XXXXXX12345;A
SERVER342Z3.DOMAIN.com0
SERVER343Z3.DOMAIN.com0
SERVER345Z3.DOMAIN.com0
ssh-rsa ...pubkeyhere...
...
Dan ini adalah cuplikan dari OUTPUT yang saya butuhkan:
Bala Bela;XXXXXX12345;XXXXXX12345678;A
4
Ize Jova;XXXXXX12345;XXXXXX12345;A
3
Jadi saya memerlukan OUTPUT dari INPUT, sehingga saya bisa melihat berapa banyak baris yang dimulai dengan "SERVER" diberikan kepada pengguna (mis .: "Bala Bela; XXXXXX12345; XXXXXX12345678; A"). Bagaimana saya bisa melakukan ini di bash?
bash
text-processing
peter gasko
sumber
sumber
Jawaban:
Sama di perl one-liner
dan golf
sumber
Versi ini menghitung semua baris yang tidak cocok dengan regexp di
grep
baris.Keluaran:
Jika Anda hanya ingin menghitung baris yang dimulai dengan 'SERVER', maka:
sumber
Keluaran:
Jika jumlah awalan ok:
Keluaran:
sumber
Sebuah
awk
alternatif:Semua dalam satu baris:
sumber
Jadi Jika output sudah diurutkan dalam setiap "ember" Anda bisa langsung menerapkan uniq dengan hanya memeriksa karakter N pertama:
Ini N == 6 karena SERVER terdiri dari 6 karakter dari awal baris. Anda akan berakhir dengan output ini (yang sedikit berbeda dari output yang Anda butuhkan):
sumber