2013-11-22 2 views
1

как я могу подсчитать символы (az, 0-9, AZ) из файлов из каталога с другими подкаталогами. Я пробовал с grep и wc, но он не работалнайти количество символов в сценарии командной строки

+0

Вы хотите, чтобы количество файлов или общий счет? – anubhava

+0

total.I нужно создать scipt, который подсчитывает общее количество символов из каталога, который может содержать другие подкаталоги, в которых могут быть файлы с символами – user3022764

ответ

1

Используйте это задать расширенное:

egrep -ro '[a-zA-Z0-9]+' *|tr -d '\n'|wc -m 

ИЛИ это:

egrep -ro '[[:alnum:]]+' "$1" |tr -d '\n'|wc -m 
+0

хорошая идея, но вы также считаете много новых строк. добавьте 'tr -d '\ n'' перед wc –

+0

@glennjackman: Спасибо, очень хорошо, я пытался стянуть' \ n' в grep, но с помощью 'tr' упрощает его. – anubhava

+0

, но путь к каталогу - это аргумент $ 1.Как его отправить? – user3022764

0

Это скрипт, который, когда вы будете запускать его, учитывая полный путь к основной папке (папка, содержащая подлодку -каталоги, которые контактируют Ins текстовых файлов), как первый аргумент будет распечатать общее количество --- >>>

## $1 will be the total path 

## This variable will be 
## a list of all sub-directories 
sub_dirs=`ls $1` 

## Total holding count variable 
count=0 

## Looping over the 
## each sub-directory 
for i in $sub_dirs; 
do 
    ## Looping over 
    ## each file 
    for j in `ls $1/$i`; 
    do 
     ## Counting the characters 
     total_characters=`wc -c "$1/$i/$j" | awk ' { print $1 } '`; 

     ## Adding the result to the count 
     count=`expr $count + $total_characters`; 
    done 
done 

## Printing out the total count 
echo $count 

Я надеюсь, что это помогает ... а я не полностью понимает вопрос ...

Приветствие от Греция Оставайтесь UNIX!

+0

Мне нужен онлайнер с трубами и> я думаю – user3022764

+0

Мне нужно создать onliner в скрипте, как я уже говорил. он получает как аргумент путь к каталогу, в котором содержатся справочники и файлы ohers. И мне нужно перенаправить общее количество символов из слов, которые находятся в этих файлах в/home/student/chars. Но только 0-9 и az , AZ, без пробелов других специальных символов. В файле file.err и в файле file.err скрипт должен писать ошибки, которые появляются во время выполнения скрипта. Это домашнее задание в ОС, и я только что начал shell scripting.please help.Tomorrow у меня есть экзамен – user3022764

+0

Ohh now i see ... я попробую это, когда я буду в моем городе, скоро поеду их в другой город, где находится мой колледж. Просто вопрос, который вы хотите, чтобы файлы остались неизменными после подсчета? – L0aD1nG

Смежные вопросы