Суть скрипта: задается аргумент. Если аргумент является каталогом, то считается и выводится число строк, слов и символов во всех файлах каталога.
Скрипт выполняется правильно, но выводит лишнюю информацию. Команда wc выводит число и имя файла, для которого выполнялась команда. Мне имя файла не нужно. Вот мой код.
#!/bin/bash
PER=1
if [ $# -ne $PER ]
then
echo "Перезапустите программу и введите $PER аргумент"
exit
fi
if [ -d "$1" ]
then
cd "$1"
for filename in *
do
echo "Число строк в $filename = $(wc -l $filename)"
echo "Число слов в $filename = $(wc -w $filename)"
echo "Число символов в $filename = $(wc -c $filename)"
done
else
echo "Директория не найдена"
fi
cd ~
Я думал сделать так на выводе:
echo "Число строк в $filename = $(wc -l $filename | grep [0-9])"
echo "Число слов в $filename = $(wc -w $filename | grep [0-9])"
echo "Число символов в $filename = $(wc -c $filename | grep [0-9])"
Но это неправильно, так как у меня в именах файлов могут быть цифры + команда grep выводит строчку, а у меня имя файла тоже содержится в строчке.
Как подправить скрипт ?