shell习题-截取字符串


利用你学过的知识点,想办法根据要求截取出字符。

字符串var=http://www.aaa.com/root/123.htm

1.取出www.aaa.com/root/123.htm

2.取出123.htm

3.取出http://www.aaa.com/root

4.取出http:

5.取出http://

6.取出www.aaa.com/root/123.htm

7.取出123

8.取出123.htm

 

参考答案:

#!/bin/bash

var="http://www.aaa.com/root/123.htm"

echo "##1 取出www.aaa.com/root/123.htm"
echo $var | awk -F"//" '{print $2}'
echo $var | grep -o "www.*"

echo "##2 取出123.htm"
echo $var | awk -F"/" '{print $5}'
echo $var | grep -o "[0-9]*\.htm"

echo "##3 取出http://www.aaa.com/root"
echo $var | sed 's|\(.*//.*/.*\)\(/.*\)|\1|'
echo $var | grep -o http.*root

echo "##4 取出http:"
echo $var | awk -F '//' '{print $1}'
echo $var | sed 's/\/\/www.*//'

echo "##5 取出http://"
echo $var | awk -F "w" '{print $1}'
echo $var | sed 's/www.*//'

echo "##6 取出www.aaa.com/root/123.htm"
echo $var | awk -F '//' '{print $2}'
echo $var | sed 's|http://||'

echo "##7 取出123"
echo $var | tr -c -d '0-9\n'
echo $var | grep -o '[0-9]\{3\}'

echo "##8 取出123.htm"
echo $var | awk -F '/' '{print $5}'