2013-03-20 1 views
1

Я написал код для чтения текстового файла и распечатаю итоговые вкладки в файле. но я хочу прочитать все файлы в каталогах и подсчетах вкладок в каждом файле и распечатать результат до одного выходного файла. Как я могу это сделать?Как подсчитать вкладки в файлах каталога?

#!/bin/sh 

FILE='unit-1-slide.txt' 
TABCOUNT=$(tr -cd '\t' < $FILE | wc -c) 
echo $TABCOUNT "tabs in file" $FILE >> output.txt 
echo "Done!" 
+0

'/ bin/sh' - это раковина bourne, а не bash. – FatalError

ответ

2

Вам просто нужно перебрать все файлы, такие как:

#!/bin/bash  

for file in *; do 
    if [ -f "$file" ]; then 
     tabs=$(tr -cd '\t' < "$file" | wc -c); 
     echo "$tabs tabs in file $file" >> output 
    fi 
done 

Выходной файл будет выглядеть следующим образом после запуска:

8 tabs in file file1 
4 tabs in file file2 
0 tabs in file file3 
3 tabs in file file4 
... 

Примечания:

Вы должны всегда указывайте свои переменные для обработки имен файлов специальными символами, такими как пробелы, и рекомендуется проверить, является ли это файл, а не каталог.