Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取。具体截取方式如下:

a、#截取,可以实现删除左边字符,保留右边字符

从左边第一个>开始,删除>及之前的所有字符

str=http://www.baidu.com/index.html

echo ${str#*/}        # right first /

输出:

/www.baidu.com/index.html

b、##截取,可以实现删除左边字符,保留右边字符

从最右边的>开始,删除>及之前的所有字符

str=http://www.baidu.com/index.html

echo ${str##*/}        # rightest /

输出:

index.html

c、%截取,可以实现删除右边字符,保留左边字符

从右边第一个>开始删除>及右边的所有字符

str=http://www.baidu.com/index.html

echo ${str%/*}        # left firft /

输出:

http://www.baidu.com

d、%%截取,可以实现删除右边字符,保留左边字符

从左边第一个>开始删除>及右边的所有字符

str=http://www.baidu.com/index.html

echo ${str%%/*}        # leftest /

输出:

http:

e、区间截取

截取第0~6个字符

str=http://www.baidu.com/index.html

echo ${str:0:6}

输出:

http:/

f、正向区间截取到结束

截取从第7个字符开始到结束

str=http://www.baidu.com/index.html

echo ${str:7}

输出:

www.baidu.com/index.html

g、反向区间截取

截取倒数第0到第7个字符的前5个

str=http://www.baidu.com/index.html

echo ${str:0-7:5}

输出:

ex.ht

h、反向截取,到结束

从倒数第10个字符截取到字符串结束

str=http://www.baidu.com/index.html

echo ${str:0-10}

输出:

index.html

i、使用cut命令实现字符串截取

cut [选项]

选项:    -b  ----> 字节

-c  ----> 字符

-f  ----> 域

已创建一个文件,内容如下:

[linuxidc@localhost 3_26]$ cat file

abcdefg

1234567

poiuytr

使用cut截取的例子如下:

[linuxidc@localhost 3_26]$ cat file | cut -b 3

c

3

i

[linuxidc@localhost 3_26]$ cat file | cut -b -3

abc

123

poi

[linuxidc@localhost 3_26]$ cat file | cut -b 3-

cdefg

34567

iuytr

[linuxidc@localhost 3_26]$ cat file | cut -b 3-5

cde

345

iuy

[linuxidc@localhost 3_26]$ cat file | cut -b 3-5,7

cdeg

3457

iuyr

对于单字节而言,-b和-c似乎作用是一样的,但是如果文本内出现中文的情况下,-c是可以正确输出一个汉字的,但使用-b选项输出的却是乱码,因为一个中文是两个字节。为了解决这个问题,通常-b选项和-n选项配合使用,-n用于告诉cut要截取的是n字节字符。

下面解释域的作用。在/etc/passwd文件中保存了所有的用户信息,仔细了解过的话,可以发现,每一长串是通过 : 分隔开的。我们可以认为该文件中的数据是以 : 分隔不同的域。指定域分隔符使用的是 -d 选项,-f后跟的数字格式和-b完全一致。【cut的域分隔符只能是一个字符】

123456789101112 [linuxidc@localhost 3_26]$ cat /etc/passwd | head -n 5

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[linuxidc@localhost 3_26]$ cat /etc/passwd | head -n 5 | cut -d : -f 1

root

bin

daemon

adm

lp

多余说一点,看下面的例子

[linuxidc@localhost 3_26]$ ps

PID TTY          TIME CMD

5630 pts/2    00:00:00 bash

5739 pts/2    00:00:00 ps

[linuxidc@localhost 3_26]$ ps | cut -b 4

I

3

4

4

明明只有三行,却cut出了四个行内容,原因就在与每个命令其实都是父bash单独创建的一个进程,cut也不例外(内置命令除外)。

linux截取字符串函数,Linux下实现字符串截取方法总结相关推荐

  1. linux c数字转字符串函数,Linux常用C函数—字符串转换篇

    Linux 常用C 函数-字符串转换篇 atof (将字符串转换成浮点型数) 相关函数 atoi ,atol ,strtod ,strtol ,strtoul 定义函数 double atof(con ...

  2. linux替换指定字符串函数,C语言实现字符串替换函数

    C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数.该函数所使用到的相关函数均是自己实现,没有调用库函数. 相关代码如下: ...

  3. thinkphp省略php,ThinkPHP的截取字符串函数无法显示省略号的解决方法

    对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $st ...

  4. php向前截取字符串函数,ThinkPHP 模板substr的截取字符串函数详解

    ThinkPHP 模板substr的截取字符串函数 在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $star ...

  5. linux 获取文件名函数,Linux shell中提取文件名和路径

    前言 有个软件叫HLAreporter,它真的搞人,基本上就是shell脚本联合起来的,关键是居然还有各种小问题,其中之一就是关于文件名和目录名这个,导致程序只能在软件本身的目录运行,然后各种bug, ...

  6. c语言中接收字符串函数,C语言中字符串处理函数拾锦

    之前在学习C语言的时候,知道C语言库函数中有很多字符串处理函数,但是没怎么好好利用它.最近,发现它们的作用实在太大了,而且有些是我从来都没有用过的.今天想整理一下,方便以后使用.比较容易理解的,就没有 ...

  7. linux的readir函数,Linux编程--readdir

    作用 在Linux中, readdir是常用来遍历文件夹下的文件 使用方法 通常readdir都是与opendir配合使用. 通过opendir打开的目录, 使用readdir来进行遍历读取 #inc ...

  8. mysql的字符串函数大全_MySQL的字符串函数大全

    ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -& ...

  9. 字符串函数用法 php,PHP字符串函数print()的用法

    print (PHP 4, PHP 5) print - 输出字符串 说明 int print ( string $arg ) 输出 arg. print 实际上不是一个函数(它是一个语言结构),因此 ...

最新文章

  1. 爬虫之selenium爬取斗鱼网站
  2. 如何用R语言在机器学习中建立集成模型?
  3. Mac OS 下安装 MacVim
  4. 皮一皮:真正的情侣服...一家人轮流穿...
  5. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装用来定时任务apscheduler库(图文详解)...
  6. 版式设计与创意 pdf_恋爱与版式
  7. 计算机等级考试模拟题卷子,二级VB模拟试卷 1
  8. Spring Security MVC登录注销示例教程
  9. pycharm下自建python包引入失败解决方案
  10. CUHK Occlusion Dataset(行人检测数据集)转换为YOLO+VOC数据集
  11. Python编程:pycharm开发工具汉化步骤
  12. Hilbert变换及谱分析
  13. 关于STM32xE系列芯片STOP模式下使用RTC唤醒所遇到的问题记录
  14. IMUGPS融合定位::IMU姿态解算
  15. 故事是如何改变人生的
  16. 回炉重造之JAVA---枚举
  17. 原装苹果手机_苹果手机换个屏水这么深!嘉兴警方揭开“原装屏”真相
  18. Python实现对中文文本分句
  19. 在vue中使用videoJs实现前端视频流
  20. 怎么把画好的流程图插入到Word中?

热门文章

  1. 永不放弃-高考励志演讲
  2. 用集合的思想分辨字条
  3. 将搭建在树莓派上的leanote用frp映射到自己的域名
  4. 日记12(网络流看题总结)
  5. java把string转int类型_java把String类型转换为int类型的方法
  6. 全球最优秀的免费软件下载-压缩工具-文件转换工具-下载工具-杀毒工具-图片编辑器-网络管理工具...
  7. 洛谷题解——P1621 集合
  8. 【CV/Matlab系列】基于dwt和Arnold置乱算法的数字水印【含Matlab源码】
  9. 蒋鑫鸿:9.8白银!沪银!期货白银!周四黄金价格走势分析及操作建议
  10. WEB漏洞攻防- SQL注入原理、判定方式、过滤及修复