linux截取文件特定字符串,Linux下字符串的截取

本文介绍Shell脚本中三种截取字符串的方法:利用特殊符号进行前后截取、通过指定起始位置和长度来截取、借助cut命令进行精确切割。这些方法适用于不同场景下的字符串处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方法:利用键盘上#$%三个键之间的前后关系

${varible##*string}  从左向右截取最后一个string后的字符串

${varible#*string}  从左向右截取第一个string后的字符串

${varible%%string*} 从右向左截取最后一个string后的字符串

${varible%string*}  从右向左截取第一个string后的字符串

eg:

57d5ef0063023dd2ca66c78d7fdfc0a2.png

从末尾除去特定子字符串,不必使用"*"字符串

eg:

4a2d9aaf94465839789e9e4576bfc5f8.png

第二种方法:${varible:start:length}截取从下标start开始的length个字符串

eg:

fb4a596f122125d0151023462713cb40.png

得到字符串长度:echo ${#varible}

eg:

255ae1644d1ba5d07d625aa1484294ed.png

或者expr length "$varible"

e4d87e0ad189cc1eb9c38ad7d015dbe6.png

实例:

运行之前,需要输入命令chmod 755 mystr_cut.sh生成可执行文件

b10ab646d4da5c971c50236ac6a6033f.png

${1##*.}——>$1是传给脚本的第一个命令行自变量,$2是传给脚本的第二个命令行自变量,以此类推

第三种方法:运用工具cut

cut命令用于从文件或标准输入中读取内容并截取每一行的特定部分,发送到标准输出

截取方式:

1.按字符位置

2.按字节位置

3.使用一个分隔符将一行分割成多个field,并提取指定的fields

cut命令有5个参数(-c,-b,-f,-d,-s)

截取方式:

-c:character

-b:byte

-f:field(需用 -d 参数指定一个分隔符,分隔符只能为单个字符)

-s:suppress,表示如果行中没有给出的分隔符,则不输出该行

注:默认为如果没有分隔符则将该行原封不动输出

eg:

1.

-c 实例

65bebf8cac1aec21f26fcee3aeea5308.png

截取字符串中从第21到37的字符

2.

-f 实例

18709ec94f2d852e60afd486318cf07f.png

截取以空格为分隔符的第三部分

497aaaca5939c16600449430f4100a3d.png

截取以空格为分隔符的第3到6部分

90f191a1cd6a917f694412daeb053b38.png

截取以 , (逗号)为分隔符的第2部分

755c55ea1f55bfd055220b816746c06f.png

截取以 , (逗号)为分隔符的第2部分之后的字符串

c93ff392497dd330b9b283df1befeadb.png

分隔符为 ? ,因为给出的字符串中没有,所以原样输出

3.

-s实例

f3b74628853c88271dc34caacd3daa57.png

字符串中没有给出的分隔符,则不输出。与上面第2.的第三个截图相对比

554a4b911f60fb1ce38b2d8c838f2e4e.png

字符串中有 " " (空格)这个分隔符,则输出符合要求的字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值