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))