我需要一個shell腳本採取的兩個輸入shell腳本中找到數
-
它必須搜索
- 主目錄和
- 模式中進行搜索的目錄和輸出數搜索模式主目錄所有文件(.c和.h文件)
它必須打印在主目錄&每個子目錄中找到的模式的數量。
main dir --> Total pattern found = 5
|
sub dir --> 3
|
sub dir --> 2
我需要一個shell腳本採取的兩個輸入shell腳本中找到數
它必須打印在主目錄&每個子目錄中找到的模式的數量。
main dir --> Total pattern found = 5
|
sub dir --> 3
|
sub dir --> 2
這應做到:
#!/bin/sh
grep -rl "$1" . | sed -r 's/\/[^\/]+$//' | sort | uniq -c
其工作原理如下:
grep
-r
搜索中的所有文件中的說法$1
供應格局當前目錄.
和所有su bdirectories-l
只輸出具有文本的圖案匹配filename
從所有輸出除去,從而只path
(即,目錄)保持然後path/filename
計數。它的輸出將看起來像這樣:
2 .
3 ./sub_dir1
1 ./sub_dir2
6 ./sub_dir2/a_sub_sub_dir
第一列是在一個目錄中的模式的匹配的量,第2欄是該目錄的名稱(.
是主目錄) 。
嗨,這工作對我來說,但在shell腳本我有這個命令作爲一個單獨的文件,但我將如何輸入模式到這個文件 – user1580988 2012-08-07 13:03:46
我編輯腳本,現在可以運行一個參數。 – Sicco 2012-08-07 13:08:34
此答案解決您的問題嗎? – Sicco 2012-08-15 15:45:20
計算事物的一種方法是使用'wc'命令;例如如果您可以讓您的搜索每行生成一個文件,則'wc -l'會打印行數(因此會打印文件數量)。 – 2012-08-07 06:02:29