GNU/Linux >> Belajar Linux >  >> Linux

Menghitung Karakter Setiap Baris Dengan Wc?

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


Linux
  1. Diurutkan dengan sort di baris perintah

  2. Memanipulasi teks pada baris perintah dengan sed

  3. Multi-Tugas di baris perintah dengan screenie

  1. Bagaimana Cara Menampilkan Karakter Kontrol (^c, ^d, ^[, ...) Secara Berbeda Di Shell?

  2. Hapus lima karakter pertama pada baris mana pun dari file teks di Linux dengan sed

  3. dapatkan 5 karakter pertama dari setiap baris dalam skrip Shell

  1. Bekerja dengan aliran data di baris perintah Linux

  2. Bekerja dengan pipa di baris perintah Linux

  3. Cara Menyisipkan Teks di awal setiap baris di Vim