首页 > 系统相关 >shell脚本提取字符串的几种方式

shell脚本提取字符串的几种方式

时间:2022-12-27 13:23:54浏览次数:40  
标签:shell 提取 string chars echo start 字符串 root

1、使用grep+sed+awk,查找编辑和输出。

例子:取得droped字段的值

原始输出

# show capture
[0 pflow]:     Interface:zc:1@1(12580)
        RX packets:29021 dropped:0
        RX bit/sec:0.00(Mbps) pkt/sec:0.00(pps)

获取指定字段值

value=`show capture`
echo "$value" | grep "dropped" | sed 's/:/ /g' | awk '{print $5}'

说明:使用grep找到字符串所在行,使用sed把冒号替换为空格,使用awk获取想要的字符串

 

2、使用sed正则表达式提取字符串

 

提取数字

[admin]# echo here365test666 | sed "s/.*ere\([0-9]*\)test\([0-9]*\)/\1\ \2/g"
365 666

 

s表示替换,\1和\2分别表示用第一个括号和第二个括号里面的内容,空格需要转义。sed支持*,不支持?、+,不能用d之类,正则支持有限。

整个sed表达式的作用是:用提取出的数字替换原来的字符串。

 

3、字符串变量截取

我们对以上 8 种格式做一个汇总,请看下表:

格式说明举例
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。

[root]# var=HelloWorld
[root]# echo ${var:0:5}
Hello

${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。

[root]# echo ${var:5}
World

${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。

[root]# echo ${var:0-5:3}
Wor

${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。

[root]# echo ${var:0-5}
World

${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。

[root]# echo ${var#*l}
loWorld

${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。

[root]# echo ${var##*l}
d

${string%chars*} 从 string 字符串第一次出现 chars* 的位置开始,截取 chars* 左边的所有字符。

[root]# echo ${var%l*}
HelloWor

${string%%chars*} 从 string 字符串最后一次出现 chars* 的位置开始,截取 chars* 左边的所有字符。

[root]# echo ${var%%l*}
He

标签:shell,提取,string,chars,echo,start,字符串,root
From: https://www.cnblogs.com/superbaby11/p/17007867.html

相关文章

  • Linux bash shell "${1}" All In One
    Linuxbashshell"${1}"AllInOne#!/usr/bin/envbash#什么鬼,看不懂呀APPNAME=${2:-$(basename"${1}"'.sh')};echo$APPNAME#echo${APPNAME}demos#!......
  • 用IDEA插件实现json字符串格式化
    用IDEA插件实现json字符串格式化Echoo华地于2022-10-1411:50:47发布分类专栏:使用工具文章标签:intellij-ideaidejson格式化json字符串格式化订阅专栏安装插件......
  • 转换字符串的最少操作次数
    题目给你一个字符串s,由n个字符组成,每个字符不是'X'就是'O'。一次操作定义为从s中选出三个连续字符并将选中的每个字符都转换为'O'。注意,如果字符已经是......
  • Shell 编程基础
    一、Shell入门基础1.Shell脚本的执行(1)以相对路径的方式:[root@wanday1]#vim+haha.sh[root@wanday1]#chmod+xhaha.sh[root@wanday1]#./haha.sh(2)以绝对路径的方式......
  • 1、shell简介
    shell简介shell快捷键筛选信息快捷键符号命令执行:!! 执行上一条命令!【num】 执行历史命令中的第num行命令Ctrl【关键字】 执行内容匹配的......
  • 两个系统介绍shell脚本的网站,啥都有
    Shellifelse语句(详解版)(biancheng.net)Shell判断是否为目录-Shell判断文件是否是目录-嗨客网(haicoder.net)......
  • 比较系统介绍shell脚本的一系列文章
     点进这个博主的标签分类,可以看到一系列文章(4条消息)Shell脚本入门01:格式与基础使用_NaisuXu的博客-CSDN博客_shell脚本格式(4条消息)Linux相关_NaisuXu的博客-C......
  • Shell笔记:编写脚本常用语法
    本文记录的是工作中编写脚本的常用语法整理,比较零散,有错欢迎指正。一、文件第一行文件的第一行通常为#!/bin/bash或#!/bin/sh,#!用于指定这个脚本文件使用什么解释......
  • 字符串匹配之 BM 算法
     一、基本概念字符串匹配是计算机科学领域中最古老、研究最广泛的问题之一,层出不穷的前辈们也总结了非常多经典的优秀算法,例如BF算法、RK算法、BM算法、KMP算法,今......
  • 字符串匹配算法之BF算法(即暴力算法)
     BF算法,即暴力(BruteForce)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个......