題目鏈結
寫乙個 bash指令碼以統計乙個文字檔案 nowcoder.txt中每一行出現的1,2,3,4,5數字個數並且要計算一下整個文件中一共出現了幾個1,2,3,4,5數字數字總數。
示例:假設 nowcoder.txt 內容如下:
a12b8
10ccc
2521abc
9asf
你的指令碼應當輸出:
line1 number: 2
line2 number: 1
line3 number: 4
line4 number: 0
sum is 7
說明:不要擔心你輸出的空格以及換行的問題
坑*** 的shell,,,,,, 奇葩無比的語法。。。。。。
expr 運算的時候 比如 expr a + b 運算元, 操作符和運算元之間必須得有空格。。。。。
賦值的時候, 比如 num=1=的左右兩邊不能有空格。。。。。意思不能寫成 num = 1
#!/bin/bash
num=1
sum=0
while read line
do nw=`echo $line | grep -eo [12345] | wc -l`
echo "line$num number: $nw"
num=`expr $num + 1`
sum=`expr $sum + $nw`
doneecho "sum is $sum"
shell 遍歷文字每一行
參考文章 shell指令碼 逐行處理文字檔案 這種方式處理時,如果在迴圈內操作全域性變數,超過迴圈作用域後,對全域性變數的操作就會失效。比如把每一行文字新增到乙個全域性陣列,在迴圈內陣列新增的元素是正常的,在迴圈外陣列的元素會恢復到迴圈之前的狀態 cat data.dat while read li...
shell讀取檔案每一行的方式
使用read命令讀取一行資料 while read myline doecho line myline done datafile.txt 使用read命令讀取一行資料 cat datafile.txt while read myline do echo line myline done 讀取一行資...
shell讀取檔案每一行的方式
1 使用read命令讀取一行資料 1 2 3 4 whileread myline do echo line myline done datafile.txt 2 使用read命令讀取一行資料 1 2 3 4 cat datafile.txt whileread myline do echo lin...