Saya mencoba menghitung jumlah baris setelah baris bermasalah dalam file csv. Saya sadar saya bisa menggunakan grep -a #
sintaks untuk menghasilkan # jumlah baris setelah kecocokan ditemukan. Saya hanya tertarik pada jumlah baris yang sebenarnya. Saya menyadari bahwa saya dapat mengatur nomor ke MAX_INT, pipa ke file dan melakukan pemrosesan lebih lanjut
Saya mencari kalimat singkat untuk memberi tahu saya hitungannya.
Ada saran?
grep -m1 match >/dev/null
tentu saja. Dan masalah kedua Anda adalah GNUsed
- tidak mereset input offsetnya per spec. Anda harus menggunakan-u
w / GNU - yang tidak selalu diinginkan. Saya bisa lebih jelas, tetapi asumsi saya adalah bahwa GNUgrep
dan GNUsed
akan berpasangan. Saya pikir, juga,grep -qm1
bisa bekerja untuk jalan pintas/dev/null
redirect - tetapi GNUgrep
melakukan hal-hal aneh w /-q
dan saya tidak dapat mengingat bagaimana keduanya bekerja bersama.wc -l
sedikit lebih murah daripadagrep -c ''
.Ini satu cara.
sumber
Cara lain - penggunaan
dc
sedikit esoteris, tetapi tampaknya bekerja dengan baik di sini:sed
mencariprob.txt
"masalah" dan baris terakhir, dan menggunakan=
perintah untuk menampilkan nomor baris keduanya.dc
membaca dua nilai ini ke stack, membalikkannya, mengurangi dan mencetak perbedaannya.sumber
Sepenuhnya dengan sed (meskipun dua perintah dengan pipa)
Menghapus semua baris sebelum baris dan kemudian perintah selanjutnya menghitung baris dalam file baru.
sumber
Ini harus menghapus semua baris hingga (dan termasuk) yang bermasalah dan kemudian menghitung baris yang tersisa:
sumber