linux截取字符串函数,Linux下实现字符串截取方法总结
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下实现字符串截取方法总结相关推荐
- linux c数字转字符串函数,Linux常用C函数—字符串转换篇
Linux 常用C 函数-字符串转换篇 atof (将字符串转换成浮点型数) 相关函数 atoi ,atol ,strtod ,strtol ,strtoul 定义函数 double atof(con ...
- linux替换指定字符串函数,C语言实现字符串替换函数
C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数.该函数所使用到的相关函数均是自己实现,没有调用库函数. 相关代码如下: ...
- thinkphp省略php,ThinkPHP的截取字符串函数无法显示省略号的解决方法
对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $st ...
- php向前截取字符串函数,ThinkPHP 模板substr的截取字符串函数详解
ThinkPHP 模板substr的截取字符串函数 在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $star ...
- linux 获取文件名函数,Linux shell中提取文件名和路径
前言 有个软件叫HLAreporter,它真的搞人,基本上就是shell脚本联合起来的,关键是居然还有各种小问题,其中之一就是关于文件名和目录名这个,导致程序只能在软件本身的目录运行,然后各种bug, ...
- c语言中接收字符串函数,C语言中字符串处理函数拾锦
之前在学习C语言的时候,知道C语言库函数中有很多字符串处理函数,但是没怎么好好利用它.最近,发现它们的作用实在太大了,而且有些是我从来都没有用过的.今天想整理一下,方便以后使用.比较容易理解的,就没有 ...
- linux的readir函数,Linux编程--readdir
作用 在Linux中, readdir是常用来遍历文件夹下的文件 使用方法 通常readdir都是与opendir配合使用. 通过opendir打开的目录, 使用readdir来进行遍历读取 #inc ...
- mysql的字符串函数大全_MySQL的字符串函数大全
ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -& ...
- 字符串函数用法 php,PHP字符串函数print()的用法
print (PHP 4, PHP 5) print - 输出字符串 说明 int print ( string $arg ) 输出 arg. print 实际上不是一个函数(它是一个语言结构),因此 ...
最新文章
- 爬虫之selenium爬取斗鱼网站
- 如何用R语言在机器学习中建立集成模型?
- Mac OS 下安装 MacVim
- 皮一皮:真正的情侣服...一家人轮流穿...
- 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装用来定时任务apscheduler库(图文详解)...
- 版式设计与创意 pdf_恋爱与版式
- 计算机等级考试模拟题卷子,二级VB模拟试卷 1
- Spring Security MVC登录注销示例教程
- pycharm下自建python包引入失败解决方案
- CUHK Occlusion Dataset(行人检测数据集)转换为YOLO+VOC数据集
- Python编程:pycharm开发工具汉化步骤
- Hilbert变换及谱分析
- 关于STM32xE系列芯片STOP模式下使用RTC唤醒所遇到的问题记录
- IMUGPS融合定位::IMU姿态解算
- 故事是如何改变人生的
- 回炉重造之JAVA---枚举
- 原装苹果手机_苹果手机换个屏水这么深!嘉兴警方揭开“原装屏”真相
- Python实现对中文文本分句
- 在vue中使用videoJs实现前端视频流
- 怎么把画好的流程图插入到Word中?
热门文章
- 永不放弃-高考励志演讲
- 用集合的思想分辨字条
- 将搭建在树莓派上的leanote用frp映射到自己的域名
- 日记12(网络流看题总结)
- java把string转int类型_java把String类型转换为int类型的方法
- 全球最优秀的免费软件下载-压缩工具-文件转换工具-下载工具-杀毒工具-图片编辑器-网络管理工具...
- 洛谷题解——P1621 集合
- 【CV/Matlab系列】基于dwt和Arnold置乱算法的数字水印【含Matlab源码】
- 蒋鑫鸿:9.8白银!沪银!期货白银!周四黄金价格走势分析及操作建议
- WEB漏洞攻防- SQL注入原理、判定方式、过滤及修复