LINUX.ORG.RU

Нужно вывести total в с-shell

 


0

2
#!/bin/csh

set A=0
set a=0
foreach word (`cat ${1}`)
echo $word | grep -E -q "^[A-Z]" && set A=1
echo $word | grep -E -q "^[a-z]" && set a=1

if ($A == 1) then 
echo $word >> Upper.tmp;
set A = 0
else if ($a == 1) then
echo $word >> Lower.tmp;
set a = 0
else echo $word >>misc.tmp
endif
end

sort +1 -2 Upper.tmp>>Upper
sort +1 -2 Lower.tmp >>Lower
sort +1 -2 misc.tmp >>misc
rm Upper.tmp
rm Lower.tmp
rm misc.tmp
pr -m -t Upper Lower misc > result

Програма выбирает слова из файла, начинающиеся с большой буквы и записывает их в файл «Upper» в текущем каталоге, а все слова, начинающиеся с маленьких букв - в файл «Lower», остальные слова записываются в файл «Misc». Затем все файлы сортируются и собираются в один - каждый исходный файл в отдельной колонке. Не могу понять как реализовать total (общее количество всех слов в файле result)



Последнее исправление: Colleyd (всего исправлений: 1)

wc -l

кстате, а что, cshell не умеет в регулярки и ассоциативные массивы? а также в (группировку; разных; комманд)>>в_одну цель??

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

wc -w

Нужно вывести количество слов в тот же файл где и слова, всё что умел перепробовал , ничего не получается.

Colleyd
() автор топика
Ответ на: wc -w от Colleyd

всё что умел перепробовал , ничего не получается.

Вы хоть примеры того что пробовали приведите, а то не понятно, что нужно. Может это:

set UN = `wc -l Upper`
echo $UN >> Upper
или

wc -w result

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо

Огромное спасибо, всё получилось.

Colleyd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.