shell中取字符串子串的几种方式

echo "123456789" | awk '{print substr($0,5,2)}'

截取

1)awk中函数substr
substr(源字符串,开始索引,长度)   开始索引以0开始
示例:
awk '{$a=substr($0,0,2);print $a;}' filename
假设文件中为只有一行为abcdefg,则返回结果为ab

(2)expr substr 
expr substr 字符串 开始索引 长度   开始索引以1开始
示例:

expr substr "abc" 2 2
显示bc

(3)echo ${str:开始索引} 或 echo ${str:开始索引:长度}   开始索引为0
示例:
str="abc"
echo ${str:1},显示bc
echo ${str:1:2},显示bc

https://blog.csdn.net/Sharp_UP/article/details/74990277

1、cut命令截取

使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
1)、使用cut -c 可以截取以字符为单位的串区间

注:以 - 作为分隔符是截取对应区间内的串

以 ,作为分隔符是截取对应位置的字符

2)、cut -b 用法和cut -c 相同,不同的是以字节为单位

2、# 号截取,删除左边字符,保留右边字符。

echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

3、 ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

4、 %号截取,删除右边字符,保留左边字符

echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符

5、%% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

6、 从左边第几个字符开始,及字符的个数

echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

7、 从左边第几个字符开始,一直到结束。

echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。

8、从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

8. 从右边第几个字符开始,一直到结束。

echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。

注:左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示

shell中取字符串子串的几种方式 截取substr的更多相关文章

  1. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  2. Shell中整数自增的几种方式

    Shell中整数自增的几种方式 2016年08月27日 19:07:40 杰瑞26 阅读数:2816    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  3. c#中数据库字符串的连接几种方式

    ADO.net 中数据库连接方式(微软提供) 微软提供了以下四种数据库连接方式:System.Data.OleDb.OleDbConnectionSystem.Data.SqlClient.SqlCo ...

  4. Shell脚本中计算字符串长度的5种方法

    有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令wc -L可以获取到当前行 ...

  5. 在shell中变量的赋值有五种方法!

    转至:https://blog.csdn.net/weibo1230123/article/details/82085226 在shell中变量的赋值有五种 :使用 read 命令,直接赋值,使用命令 ...

  6. C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏

    C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...

  7. C语言中返回字符串函数的四种实现方法

    转自C语言中返回字符串函数的四种实现方法 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函 ...

  8. js中 json对象与json字符串相互转换的几种方式

    以下总结js中 json对象与json字符串相互转换的几种方式: 一.JSON对象转化为JSON字符串 1.使用JSON.stringify()方法进行转换 该方法不支持较老版本的IE浏览器,比如:i ...

  9. c#ASP.NET中页面传值共有这么几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...

随机推荐

  1. Centos610安装redis

    .tar.gz 解压 cd redis-5.0.4 编译 make PREFIX=/usr/local/redis install 测试 make test 测试执行失败,请安装tcl,具体参考第二步 ...

  2. Django 学习之内置Admin

    一.Admin组件 Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django Admin内部依赖: 依赖APP: django.contrib.au ...

  3. java swing简介

    java应用程序用户界面开发包 Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少 ...

  4. 使用forin循环时的注意事项

    由于遍历的对象为nil,从而导致的现象是里面的循环体根本就没有执行,并且编译器和运行期都不会报错.因为,OC语法是运行向nil发送消息的. for (WSFActivitySelectSpaceCel ...

  5. insert和delete底层实现的方式

    operator delete ()全局函数原型: /*operator delete: 该函数最终是通过free来释放空间的*/void operator delete(void *pUserDat ...

  6. 【剑指Offer面试编程题】题目1373:整数中1出现的次数--九度OJ

    题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他.问题是:求出1~13的整数中1出现的次数,并算出100~130 ...

  7. java并发队列

    阻塞队列 常见的阻塞队列有ArrayBlockingQueue,LinkedBlockingDeque,LinkedBlockingQueue,这些队列有界且可以阻塞线程 ArrayBlockingQ ...

  8. Android之Context和Activity互相转换

    1.context转换为activity Activity activity = (Activity) context; 2.从activity得到context 在activity的方法中用cont ...

  9. 通过开源项目免费申请 IntelliJ IDEA license(激活码)

    通过github开源项目免费申请 IntelliJ IDEA license(激活码) 我用来申请的github开源项目:https://github.com/Linliquan/springboot ...

  10. Day2-L-棋盘问题-POJ1321

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...