天天看點

shell記錄(持續更新)

shell記錄

        • 變量${}和##、%%
        • IP相關

變量${}和##、%%

# 
url="http://www.baidu.com/txt/1.txt"
echo ${url} # 輸出變量内容
# 輸出:http://www.baidu.com/txt/1.txt
echo ${#url} # 輸出變量長度
# 輸出:30
echo ${url#*/} # 左起第一個(非貪婪比對)/為分隔,删除左邊包括本身
# 輸出:/www.baidu.com/txt/1.txt
echo ${url##*/} # 左起最後一個(貪婪比對)/為分隔,删除左邊包括本身
# 輸出:1.txt
echo ${url%/*} # 右起第一個(非貪婪比對)/為分隔,删除右邊包括本身
# 輸出:http://www.baidu.com/txt
echo ${url%%/*} # 右起最後一個(貪婪比對)/為分隔,删除右邊包括本身
# 輸出:http:
echo ${url:1:2} # 取索引1到2的字元(索引從0開始)
# 輸出:tt
echo ${url/txt/csv} # 替換txt為csv(非貪婪比對)
# 輸出:http://www.baidu.com/csv/1.txt
echo ${url//txt/csv} # 替換txt為csv(貪婪比對)
# 輸出:http://www.baidu.com/csv/1.csv

           

IP相關

# 擷取eth0的IP
ifconfig eth0 | egrep -o '[0-9\.]{7,}'
ifconfig eth0 | awk -F'[ ]+' '/inet\>/{print $3}' # 這個例子隻是為了展現,-F分隔符支援正則(awk 預設分隔符就是這種規則)
ifconfig | awk '{for(i=1;i<=NF;i++){if(match($i,"[0-9.]{7,15}"))print $i}} # 展現awk可以用循環、判斷

           

繼續閱讀