shell腳本,正則表達式

用顏色編碼輸出

在腳本中調用其他二進制文件或腳本時,對它們的輸出進行顏色編碼,這樣就可以知道哪個輸出來自哪個腳本或二進制文件。這樣我們就不需要在滿屏的黑白輸出文本中查找想要的輸出結果。

理想情況下,腳本應該輸出白色(默認的,前臺進程),子進程應該使用灰色(通常不需要,除非出現錯誤),使用綠色表示成功,紅色表示失敗,黃色表示警告。

#!/bin/sh 
printf -- 'doing something... \n'; 
printf -- '\033[37m someone elses output \033[0m\n'; 
printf -- '\033[32m SUCCESS: yay \033[0m\n'; 
printf -- '\033[33m WARNING: hmm \033[0m\n'; 
printf -- '\033[31m ERROR: fubar \033[0m\n'; 

顯示:
在這裏插入圖片描述

正則:獲取url鏈接後的目錄路徑

因需求需要把大批量的url鏈接做404處理,所以就要用腳本來執行。這時候就要用到正則來獲取每條鏈接後面的目錄路徑。

sed -ri 's#(https://)?([a-zA-Z0-9]+.)+[a-zA-Z](/)?[a-zA-Z0-9](/)##g'  test.txt

執行例子: https://xxx.ccc.com/www/ert/uor/index.html    --->    ert/uor/index.html 

-r:可以不加脫義字符
-i:可以對文件內容真正的修改
(https://)? :表示匹配0或1個https://
[a-zA-Z0-9]+. :表示1或多個[ ]裏的內容,也就是一個xxx.
([a-zA-Z0-9]+.)+  :在上面的基礎上多了 ()+,就是多個xxx. ,也就是我們所謂的二級域名的前兩部分,也就是上述的xxx.ccc.
[a-zA-Z](/)?  : 表示的是上述的 com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章