2015-03-16 3 views
-2

Как найти Граф конкретного слова в разных файлах в Unix:Как найти количество конкретного слова в разных файлах в Unix

У меня есть: 50 файлов в директории (abc.txt, abc.txt.1, abc.txt.2 и т. д.)

Что я хочу: Найти количество экземпляров слова «Hello» в каждом файле.

То, что я использовал этоgrep -c Hello abc* | grep -v :0

Это дало мне результат в форме,

<<File name>> : <<count>> 

Я хочу выход быть в форме

<<Date>> <<File_Name>> <<Number of Instances of word Hello in the file>> 

1-1-2001  abc.txt    23 
1-1-2014  abc.txt.19   57 
2-5-2015  abc.txt.49   16 
+1

возможно дубликат [сосчитать все вхождения строки в много файлов с Grep] (http://stackoverflow.com/questions/371115/count-all-occurrences-of-string-in- lots-of-files-with-grep) –

+2

@jonathon Что относительно даты? –

+0

@AkshaySapra Как насчет даты? Вы ничего нам не сообщили о дате. Откуда берутся эти данные? – Kusalananda

ответ

0

Вы можете используйте gnu awk >=4.0 (из-за ENDFILE), чтобы получить номер.
Если мы знаем, откуда берутся данные, я добавлю его.

awk '{for (i=1;i<=NF;i++) if ($i~/Hello/) a++} ENDFILE {print FILENAME,a;a=0}' abc.txt* 
0
### Sample code for you to tweak for your needs: 
touch test.txt 
echo "ravi chandran marappan 30" > test.txt                                  
echo "ramesh kumar marappan 24" >> test.txt 
echo "ram lakshman marappan 22" >> test.txt 
sed -e 's/ /\n/g' test.txt | sort | uniq | awk '{print "echo """,$1, 
"""`grep -wc ",$1," test.txt`"}' | sh 

Results:       
22 -1                                       
24 -1                                       
30 -1                                       
chandran -1                                     
kumar -1                                      
lakshman -1                                     
marappan -3                               
ram -1                                
ramesh -1                              
ravi -1` 
+0

На самом деле это должен быть только один блок кода? – Laurel

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