【脚本2】截取字符串

一、脚本

现有一个字符串如下:

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

# echo ${var#*//}
# echo ${var##*/}
# echo ${var%/*}
# echo ${var%%/*}
# echo ${var%%w*}
# echo ${var#*//}
# var1=${var##*/}
# echo ${var1%.*}
# echo $var1 # echo $var | awk -F '//' '{print $2}'
# echo $var | awk -F '/' '{print $5}'
# echo $var | grep -o 'http.*root'
# echo $var | awk -F '//' '{print $1}'
# echo $var | grep -o 'http://'
# echo $var | grep -o 'www.*htm'
# echo $var | grep -o '123'
# echo $var | grep -o '123.htm'

二、小结

1、grep的用法

[1]Linux命令:"grep -v grep"的作用 & 使用场景

1.1grep语法

grep [参数] 查询内容 文件(多个文件使用空格分隔)

常用选项:

  -E :开启扩展(Extend)的正则表达式。
-e :开启扩展(Extend)的正则表达式。
  -i :略大小写(ignore case)。
  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
  -n :显示行号
  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
  -o :只显示被模式匹配到的字符串。
  --color :将匹配到的内容以颜色高亮显示。
  -A n:显示匹配到的字符串所在的行及其后n行,after
  -B n:显示匹配到的字符串所在的行及其前n行,before
  -C n:显示匹配到的字符串所在的行及其前后各n行,context

注:

   (1)grep -e 与 grep -E的区别:
grep -e 只能传递一个检索内容
grep -e pattern1 -e pattern2 filename
grep -E 可以传递多个内容 ,使用 | 来分割多个pattern,以此实现OR操作
grep -E 'pattern1|pattern2' filenam
(2) pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
*:所有字符,长度可以为0。

2、awk的用法

参考博客:

[1]Shell学习(五)—— awk命令详解

最新文章

  1. AngularJS 输入验证
  2. px、dp与sp的区别以及换算
  3. Java中常用的查找算法——顺序查找和二分查找
  4. WinForm------TreeList实现鼠标经过节点背景色改变
  5. CodeForces 19D Points(线段树+map)
  6. 【iOS】XcodeColors插件与CocoaLumberjack工具
  7. mybatis(二)执行CRUD操作的两种方式配置和注解
  8. Ubuntu下adb的安装
  9. POJ 1458
  10. iOS开发基础知识:Core Animation(核心动画)
  11. Android 颜色渲染(九) PorterDuff及Xfermode详解
  12. css 单位 px em rem
  13. The encryption certificate of the relying party trust identified by thumbprint is not valid
  14. SQLserver数据库操作帮助类SqlHelper
  15. win32 api Windows窗口的创建
  16. String数组必须初始化之后才能赋值
  17. locate 命令详解
  18. Spring 依赖注入方式详解(四)
  19. scrapy几种反反爬策略
  20. block,inline-block,行内元素区别及浮动

热门文章

  1. docker中镜像的作用
  2. java+selenium+testNG+Allure报表【新增截图到报表功能】
  3. MYSQL5.7下载安装图文教程
  4. SpringCloud升级之路2020.0.x版-30. FeignClient 实现重试
  5. this.$set用法
  6. 无法复现的“慢”SQL《死磕MySQL系列 八》
  7. Android 有意思的脚本(打印温度)
  8. Spark整合Hive
  9. c++学习笔记2(const关键词的用法)
  10. GO的安装以及GoLand破解