2013-03-14 31 views
-1

我試着去學習一些bash腳本編寫和清理一些舊的CD(記得那些?)grep的腳本在CD運行

什麼我是一個沒有無緣無故給他們,讓我一堆備份光盤'想創建一個grep腳本,它將根據關鍵字搜索它們。 (我目前正在試圖首先在桌面上測試腳本)我知道如何運行grep,但是我遇到了麻煩的腳本。

因此,這裏是我有:

#!/bin/bash 
#CDGrepScript 

SOURCEDIR=/home/name/Desktop (I'm currently testing it with files on the desktop) 
#mount /dev/cdrom  
#SOURCEDIR=/dev/cdrom 

echo "hello, $USER. I will search your files" 
echo Begin Search... 

grep -ir "taxes|personal|School" * 

echo $results 
echo "The search is complete. Goodbye" 

exit 

現在,當我跑這對桌面上的文件。我的腳本在「開始搜索」後掛起我做錯了什麼?

感謝您的幫助

回答

1

您可以通過更廣泛的工具來更好的服務。就像一個rgrep(遞歸grep),它將遍歷樹搜索一個搜索詞。舉個例子:

# rgrep 
# 
# Search for text strings in a directory hierarchy 
set +x 
case $# in 
0 | 1) 
     # Not enough arguments -- give help message 
     echo "Usage: $0 search_text pathname..." >&2 
     exit 1 
     ;; 
*) 
     # Use the first argument as a search string 
     search_text=$1 
     shift 
     # Use the remaining argument(s) as path name(s) 
     find "[email protected]" -type f -print | 
     while read pathname 
     do 
     egrep -i "$search_text" $pathname /dev/null 
     done 
     ;; 
esac 

將這個在你的路徑,那麼你只需要改變目錄的安裝點的CD-ROM,然後鍵入您希望執行

$ rgrep "taxes" . 

或者任何其他搜索。

+0

rgrep與grep -r不一樣很像egrep類似於grep -E嗎?我之前運行過grep進行基本搜索。 – Mike 2013-03-14 19:03:58

+0

也許如此。我是一個老前輩,因爲在grep -r之前,我已經將腳本放在〜/ bin文件夾中。 ;-)我無法猜測爲什麼你的原始腳本掛在你的桌面文件上,而不知道那裏的內容是什麼。 – 2013-03-14 19:06:30

+0

太棒了!謝謝您的幫助。我需要一段時間才能剖析代碼,因爲這對我來說都是新事物。在那之前......我會離開你的草坪! :) 大聲笑。 – Mike 2013-03-14 19:08:08