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  ----> 域

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

[[email protected] 3_26]$ cat file

abcdefg

1234567

poiuytr

使用cut截取的例子如下:[[email protected] 3_26]$ cat file | cut -b 3

c

3

i

[[email protected] 3_26]$ cat file | cut -b -3

abc

123

poi

[[email protected] 3_26]$ cat file | cut -b 3-

cdefg

34567

iuytr

[[email protected] 3_26]$ cat file | cut -b 3-5

cde

345

iuy

[[email protected] 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的域分隔符只能是一个字符】[[email protected] 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

[[email protected] 3_26]$ cat /etc/passwd | head -n 5 | cut -d : -f 1

root

bin

daemon

adm

lp

多余说一点,看下面的例子[[email protected] 3_26]$ ps

PID TTY          TIME CMD

5630 pts/2    00:00:00 bash

5739 pts/2    00:00:00 ps

[[email protected] 3_26]$ ps | cut -b 4

I

3

4

4

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

-----muhuizz整理

linux 字符下 上网,Linux下实现字符串截取方法总结(示例代码)相关推荐

  1. Shell脚本8种字符串截取方法总结

    这篇文章主要介绍了Shell脚本8种字符串截取方法总结,每个方法给出了实例代码和操作结果,一目了然,需要的朋友可以参考下 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http:/ ...

  2. Android String字符串截取方法总结

    Android String字符串截取方法总结 指定字符,截取字符串,返回字符串数组: String str = "abcd.efg.123456.hijk.345"; Strin ...

  3. swift中字符串截取方法(substring)

    下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSStrin ...

  4. linux截取字符串函数,Linux下实现字符串截取方法总结

    Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个>开始,删除>及之前的所 ...

  5. php 变量的md5加密,利用PHP脚本在Linux下用md5函数加密字符串的方法

    #touch a.php //创建a.php文件 #vi a.php //用vi 编辑a.php文件 将<?php echo md5(123456); ?>输入进去后保存 #php a.p ...

  6. linux字符查找命令,linux查找文件或字符串的命令

    1. linux下面用于查到的命令有哪些? 是不是有很多呀,这个我还没做过统计和调查,不过这篇博客只介绍grep与find的最基本应用. grep和find功能都是相当的强大,这里也只是介绍这两个命令 ...

  7. linux 通过手机上网,Linux系统通过手机GPRS上网设置简介有哪些呢?

    Linux通过手机上网 1.安装相关软件 sudo apt-get install wvdial 2.得到GPRS的IP地址 (1) 手机调整到usb lan模式,在手机打开一个网页,让它的GPRS连 ...

  8. Linux 字符串截取方法

    八种截取方法 场景:var=http://www.baidu.com/abc.html 1. #:删除左边字符,保留右边字符 例:echo ${var#*//} 输出内容:www.baidu.com/ ...

  9. linux重定向进程输出到文件删除,Linux文件编辑器vim输出输入重定向、管道以及进程(示例代码)...

    合抱之木,生于毫末:九层之台,起于累土:千里之行,始于足下.正因基础的重要性,才又撸起了linux. linux编辑工具: VI VIM EMACS vim 是vi的升级版本,它不仅兼容vi的所有指令 ...

最新文章

  1. Android Studio上手,基于VideoView的本地文件及流媒体播放器
  2. WIN7 64位系统搭建WINCE6.0系统遇到的问题
  3. 基于 Python Matplotlib 模块的高质量图形输出
  4. c语言汇编混合编程方法,C语言和汇编语言混合编程方法
  5. vscode使用sass_推荐7 个 极好用的VS Code 插件
  6. 服务器文件忽略大小写,服务器文件忽略大小写
  7. [Android]Fragment生命周期
  8. 【CCCC】L3-003 社交集群 (30分),并查集模板,map排序
  9. FFMPEG录屏(12)---- DXGI 捕获桌面
  10. 双目相机标定Matlab
  11. 获取docker容器里面的root权限
  12. 深度学习初学者必须知道的25个专业名词
  13. linux沙箱隔离_360隔离沙箱在WINDOWS 10 的WSL下的沙箱逃逸
  14. 任务16:16_Flume案例_断点续传文件(案例测试)
  15. dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
  16. JS: break 终止循环 continue跳过循环体中不想执行的语句
  17. Paying More Attetion to Attention:Improving the Performance of Convolutional Neural Networks via AT
  18. 一名优秀的管理者应具有那些能力?
  19. php 第三方认证中心 框架,仿百度钱包源码红色优享钱包网贷借款源码/接入第三方认证,去后门修复缺陷ThinkPHP开发...
  20. 正则表达式验证正整数

热门文章

  1. WebSocket不同版本的三种握手方式以及一个Netty实现JAVA类
  2. Java学习笔记2.6.2 数组 - 二维数组
  3. 大数据学习笔记11:搭建完全分布式Hadoop
  4. 无心剑中译罗素《此生何求?》
  5. bzoj 4942 整数 思考记录
  6. 【英语学习】【WOTD】coin of the realm 释义/词源/示例
  7. 【英语学习】【WOTD】decoct 释义/词源/示例
  8. 【英语学习】【Daily English】U01 Greetings / L01 Same old, same old
  9. 中职计算机专业选修课程,《办好中职学校计算机专业的几点思考.doc
  10. mysql统计今天发布了多少条_Mysql统计总结 - 最近30天,昨天的数据统计