Napíšte shell shell, aby ste spočítali početriadky, znaky, slová v súbore (bez použitia príkazov). Odstráňte tiež zo súboru slovo „Linux“, kdekoľvek sa objaví, a výsledky uložte do nového súboru.
odpovede:
1 pre odpoveď č. 1Toto je najbližšie, čo by som mohol získať bez použitia balíčkov tretích strán ...
#!/bin/bash
count=0
while read -r line
do
count=$((count + 1))
done < "$filename"
echo "Number of lines: $count"
0 pre odpoveď č. 2
- Sachin Bharadwaj dal scenár, ktorý počíta riadky.
- Teraz, aby sme spočítali slová, môžeme použiť
set
rozdeliť riadok na$#
pozičné parametre. - Na počítanie znakov môžeme použiť dĺžku parametra:
${#line}
. - Nakoniec, na vymazanie každého „Linuxu“ môžeme použiť substitúciu vzoru:
${line//Linux}
.
(Porov Rozšírenie parametrov Shell.)
Všetky spoločne:
while read -r line
do
((++count))
set -- $line
((wordcount+=$#))
((charcount+=${#line}+1)) # +1 for the "n"
echo "${line//Linux}"
done < "$filename" >anewfile
echo "Number of lines: $count"
echo "Number of words: $wordcount"
echo "Number of chars: $charcount"