Gunakan awk. cat myfile | awk '{print $1}' | grep query
Jika Anda dapat menggunakan awk
, coba ini:
text.txt
--------
Product Cost
Abc....def 10
Abc.def 20
ajsk,,lll 04
With only awk:
awk '$1 ~ /^Abc.*def$/ { SUM += $2 } END { print SUM } ' test.txt
Result: 30
With grep and awk:
grep "^Abc.*def.*\d*$" test.txt | awk '{SUM += $2} END {print SUM}'
Result: 30
Penjelasan:
awk
membaca setiap baris dan mencocokkan kolom pertama dengan ekspresi reguler (regex)- Kolom pertama harus dimulai dengan Abc, diikuti dengan apa saja (nol kali atau lebih), dan diakhiri dengan def
- Jika kecocokan tersebut ditemukan, tambahkan kolom ke-2 ke variabel SUM
- Setelah membaca semua baris, cetak variabel
Grep mengekstrak setiap baris yang dimulai dengan Abc, diikuti oleh apa saja, diikuti oleh def, diikuti oleh apa saja, diikuti dengan angka (nol kali atau lebih) hingga akhir. Garis-garis itu diumpankan / disalurkan ke awk. Awk hanya menambah SUM untuk setiap baris yang diterimanya. Setelah membaca semua baris yang diterima, variabel SUM akan dicetak.
Ionic android build Error - Gagal menemukan variabel lingkungan 'ANDROID_HOME'
Daftar semua proses yang berjalan di server menggunakan PHP