2012-02-02 37 views
5

Tôi phải viết một tập lệnh để đọc từng dòng bằng cách sử dụng vòng lặp while và đếm số từ trong mỗi dòng. Cho đến nay tôi có thể nhận được tổng số dòng và văn bản cho mỗi dòng trên một dòng riêng của nó. Tôi gặp sự cố khi sử dụng lệnh wc -w để đếm số từ cho mỗi dòng và hiển thị nó. khi tôi đặt nó trên cùng một dòng như tuyên bố printf là cho một số không chính xác. Tôi phải đường gạch văn bản vào kịch bản để nó sẽ đếm các từ, ví dụ: cat file.txt | word_count.shsố từ của mỗi dòng trong một tập lệnh

bất kỳ đề xuất nào?

mã:

#!/bin/bash 
line_num=1 

while read line;do 

printf "line $line_num: $line" 

((line_num++)) 

done 

kết quả:

cat imagine.txt | word_counts.sh 
line1: magine there's no countries 
line2: It isn't hard to do 
line3: Nothing to kill or die for 
line4: And no religion too 
line5: Imagine all the people living life in peace 

Trả lời

4
printf "$line_num: $(echo $line | wc -w)" 
+0

Cảm ơn bạn rất nhiều làm việc hoàn hảo, không biết tôi phải lặp lại dòng và put() xung quanh nó. –

4

Trong trường hợp bạn muốn gây ấn tượng tại các nguy cơ bị bắt vì đạo văn:

awk '$0="line"NR": "NF' imagine.txt 
Các vấn đề liên quan