- 共同要求:
- 在家目錄下建立 zzz 目錄。
- 切換工作目錄到 zzz,所有練習腳本皆存在此目錄。
- 腳本必須可執行。
-
檔案導向都是執行.sh腳本命令時導向,不是寫在腳本內導向。檔案導向到
/tmp/$mysid.$evalname
目錄,其中變數 $mysid
為自己的學號,$evalname
為評分程式名稱不加附檔名,目錄若不存在,必須自行建立。
- 練習題
- 下載檔案 re1.txt。
寫 .sh 腳本,以 grep 對 re1.txt 執行以下搜尋,不需要列印行號,不要做任何的更動,所有結果導向到 .txt 檔案:
- myre1.1.sh 導向到 myre1.1.txt
- you 其中 y 大小寫都可以。
- tast 或 test。
- oo 前不是 g,也不是 t。
- myre1.2.sh 導向到 myre1.2.txt
- 剛好三個阿拉伯數字。
- 兩個以上阿拉伯數字。
- myre1.3.sh 導向到 myre1.3.txt
- 行首是大寫英文字母。
- 行尾不是 '.' 句點。
- 下載檔案 dos.sh,
dos.sh 是用 windows notepad 編輯檔案,下載下來卻無法執行,請轉換成可在 Linux 下執行的腳本。
- 下載檔案 re2.txt,
寫 .sh 腳本,以 grep 對 re2.txt 使用
一般正規表示法執行以下搜尋,不需要列印行號,不要做任何的更動,所有結果依序累加到 .txt 檔案:
- myre2.1.sh 導向到 myre2.1.txt。
- 開頭 b 結尾 是 t,中間 1 個以上 a 的字串。
- 開頭 b 結尾 是 t,中間 0 個 或 1 個 a 的字串。
- dog, feet, good 三個字串。
- myre2.2.sh 導向到 myre2.2.txt。
- boot 或 babt。
- 開頭 b 結尾 是 t,中間 pqr 重複 1 次以上。
- 寫 .sh 腳本,以 grep 對 re2.txt 使用
延伸正規表示法執行以下搜尋,不需要列印行號,不要做任何的更動,所有結果依序累加到 .txt 檔案:
- myre2e.1.sh 導向到 myre2e.1.txt。
- 開頭 b 結尾 是 t,中間 1 個以上 a 的字串。
- 開頭 b 結尾 是 t,中間 0 個 或 1 個 a 的字串。
- dog, feet, good 三個字串。
- myre2e.2.sh 導向到 myre2e.2.txt。
- boot 或 babt。
- 開頭 b 結尾 是 t,中間 pqr 重複 1 次以上。
- 下載檔案 sid.txt,
寫一腳本 resid.sh 使用 grep 對 sid.txt 執行學號姓名檔的搜尋,不需要列印行號,輸出存到檔案 residresult1.txt,不要做任何的更動。
sid 學號姓名檔格式要求如下:
- 格式:「電腦位置 IPV4最後一組數字 學號 姓名」
- 每個欄位用一個空白隔開。
- resid1.sh 查詢行首電腦位置 A-B, A:1-6 B:1-12,導向到 resid1.txt。
- resid2.sh 查詢 IPV4 最後一組數字:50-199 且前後都空白,導向到 resid2.txt。
- resid3.sh 查詢學號:「1xxxxxxx」,x 是 0-9 數字,且前後都空白,導向到 resid3.txt。
- resid4.sh 查詢姓名:「OOO」,O 是中文字,要求行尾 2-5 個中文字,導向 resid4.txt。
-
提示:grep 找中文字用
-P (--perl-regexp)
選項,中文字正規表示 \p{Han}
,-P
已支援延伸正規表示法的群組 ()
及 或 "|"。
DYWANG_HOME