Apakah mungkin menggunakan wc untuk menghitung karakter setiap baris alih-alih jumlah total karakter?
misalnya
echo -e foo\nbar\nbazz | grep -i ba
kembali:
bar
bazz
Jadi mengapa tidak echo -e foo\nbar\nbazz | grep ba | wc -m
mengembalikan daftar panjang kata-kata itu? (3 dan 4)
Saran?
P.S.:mengapa umpan baris dihitung dengan wc -m ? wc -l menghitung baris baru, jadi mengapa harus wc -m hitung juga?
Jawaban yang Diterima:
wc menghitung seluruh file;
Anda dapat menggunakan awk untuk memproses baris demi baris (tidak termasuk pembatas baris):
echo -e "foonbarnbazzn" | grep ba | awk '{print length}'
atau sebagai awk sebagian besar merupakan superset dari grep :
echo -e "foonbarnbazzn" | awk '/ba/ {print length}'
(perhatikan bahwa beberapa awk implementasi melaporkan jumlah byte (seperti wc -c ) sebagai lawan dari jumlah karakter (seperti wc -m ) dan lainnya akan menghitung byte yang bukan merupakan bagian dari karakter yang valid selain karakter (sementara wc -m akan mengabaikannya di sebagian besar implementasi))