【脚本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命令详解

100个Shell脚本——【脚本2】截取字符串的更多相关文章

  1. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  2. Shell脚本编程中截取字符串方法

    例如: 假设变量var=http://www.baidu.com/111.png 1.#号截取(删左留右) echo ${var#*//} # 号是运算符,*// 表示从左边开始删除第一个 // 号及 ...

  3. 【转】干货分享-100个shell脚本

    本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please i ...

  4. shell截取字符串的方法

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  5. Shell与脚本

    shell是Linux操作系统的用户接口,我们经常需要编写脚本让操作系统自动执行一系列指令的需求,本文将简单介绍开发shell脚本的所需的语言特性. shell脚本是指令序列,其指令可以直接在终端中执 ...

  6. 【shell】shell基础脚本合集

    1.向脚本传递参数 #!/bin/bash #功能:打印文件名与输入参数 #作者:OLIVER echo $0 #打印文件名 echo $1 #打印输入参数 执行结果: 2.在脚本中使用参数 #!/b ...

  7. 4.Vim编辑器与Shell命令脚本

    第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...

  8. 《Linux就该这么学》培训笔记_ch04_Vim编辑器与Shell命令脚本

    <Linux就该这么学>培训笔记_ch04_Vim编辑器与Shell命令脚本 文章最后会post上书本的笔记照片. 文章主要内容: Vim编辑器 Shell脚本 流程控制语句 if语句 f ...

  9. Linux 就该这么学 CH04 VIM编辑器和Shell命令脚本

    0 概述 1 Vim编辑器 在linux 中一切都是文件,而配置一个服务就是修改其配置文件的参数. vim 编辑器有三种模式:命令模式,末行模式和编辑模式. 命令模式:控制光标移动,对文件进行操作. ...

随机推荐

  1. Openeuler安装完整man手册

    Openeuler安装完整man手册 ​ 在 Debian 和 Ubuntu 中安装了Shell 前端软件包管理器apt(Advanced Packaging Tool),可以通过如下方式安装. ​ ...

  2. mysql查询表名和列名字

    -- 登录yellowcong 数据库 mysql -uroot -proot yellowcong -- 查看当前数据库 select database() -- 查看数据库里面的表 --table ...

  3. 【Jenkins】jenkins构建python项目提示:'python' 不是内部或外部命令,也不是可运行的程序或批处理文件

    一.问题:jenkins构建python项目提示:'python' 不是内部或外部命令,也不是可运行的程序或批处理文件 二.原因:要在jenkins配置本地环境变量 三.解决方案:添加python.e ...

  4. cwRsync 实现两台服务器Windows Server 2012 R2间的文件同步(备份)

    sync下载链接:https://pan.baidu.com/s/1aZeGDA5bU9f1h6nxvVJsDw  提取码:jtv3 1.配置IP地址 Server端:192.167.1.2(自定义) ...

  5. C# for Beginner Part 21 to 30

    Part 21 Inheritance in c# Why Inheritance Pillars(支架) of Object Oriented Programming 1,Inheritance(继 ...

  6. 使用VSCode编写,发布cnblogs

    WriteCnBlog插件作者写的教程: https://www.cnblogs.com/caipeiyu/p/11774968.html

  7. [noi32]sort

    先解释一下checker.cpp,它的判定标准是2e7,即答案超过2e7就认为代价过大了. 首先,很容易想到的办法是直接对其快排,从外到内交换区间即可,然而这样会被邪恶的出题人给卡掉(当然其实随便一组 ...

  8. [atAGC051C]Flipper

    对于这一个平面用$a_{x,y}$来表示,即$(x,y)$为黑色则$a_{x,y}=1$,否则$a_{x,y}=0$,之后定义$a$能生成$b$当且仅当$a$能够通过若干次操作后得到$b$ 令$p_{ ...

  9. es使用postmain进行数据的增删改查

    es的基本安装 安装遇到的问题  java本地环境和es环境冲突 ​ https://www.cnblogs.com/q1359720840/p/14077049.html ​ ​ ,看要使用jdk1 ...

  10. 基于Docker搭建Maven私服Nexus,Nexus详解

    备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示 一:基于Docker安装nexus3 ...