今天看到一个帖子,感觉shell还是很强大的,用了这么多年的linux,还是有很多地方需要学习的。
str="server_port: 80a," 提取数字80,下面有很多种写法
1. grep -o '[0-9]*'
2. expr “$a" : '[^0-9]*\([0-9]*\)'
3. awk -vRS="[0-9]+" 'RT{print RT}'
4 grep -Po "(?<=: ).*(?=.,)" ### (?<=exp) 匹配exp之后的内容,(?=exp)匹配exp之前的内容
5 awk -F' |a' '{print $2}'
6 sed 's/[^0-9]//g'
7 echo ${str:13:2}
8 str=${str/* /};echo ${str/%[^0-9],/} ####%从末尾开始匹配替换