shell记录
变量${}和##、%%
#
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可以用循环、判断