字符串处理

截取子字符串

使用expr命令

基本用法

expr substr $var1 起始位置 截取长度

[root@Hincy:~]# var1="CentOS6.5"

[root@Hincy:~]# expr substr $var1 1 6

CentOS

[root@Hincy:~]# expr substr $var1 7 3

6.5

使用cut命令

基本用法

命令输出 | cut -c 起始位置-结束位置命令输出 | cut -d ‘分隔符’ -f 字段编号…

[root@Hincy:~]# var1="CentOS6.5"

[root@Hincy:~]# echo $var1 | cut -c 5-6

OS

[root@Hincy:~]# echo $var1 | cut -c -6 //简略用法,缺省从1开始

CentOS

[root@Hincy:~]# echo $var1 | cut -d 't' -f 2

OS6.5

使用${}表达式

基本用法

${var1:起始位置:截取长度}${var1::截取长度} 注:第一个起始位置的编号为0

[root@Hincy:~]# var1="CentOS6.5"

[root@Hincy:~]# echo ${var1:1:4}

entO

[root@Hincy:~]# echo ${var1::4}

Cent

[root@Hincy:~]# echo ${var1:6:3}

6.5

字符串替换

使用${}表达式

基本用法

${var1/old/new}${var1//old/new}

[root@Hincy:~]# var1="CentOS6.5 Server"

[root@Hincy:~]# echo ${var1/CnetOS/RHEL}

RHEL6.5 Server

[root@Hincy:~]# echo ${var1/e/##} //只有第一个e被替换

C##ntOS6.5 Server

[root@Hincy:~]# echo ${var1//e/##} //所有的e都被替换

C##ntOS6.5 S##rv##r

批量替换应用

根据模板字串创建新的/etc/passwd记录

参照root的记录作为模板新用户的登陆名称由变量UN提供

[root@Hincy:~]# var1 = "root:x:0:0:root:/root:/bin/bash"

[root@Hincy:~]# UN="lisi";echo ${var1//root/$UN}

lisi:x:0:0:lisi:/lisi:/bin/bash

[root@Hincy:~]# UN="wangwu";echo ${var1//root/$UN}

wangwu:x:0:0:wangwu:/wangwu:/bin/bash

tr单字替换工具

基本用法

命令输出 | tr ‘abc’ ‘ABC’命令输出 | tr -d ‘abc’

[root@Hincy:~]# head -1 /etc/passwd | tr 'or' 'OR' //将字符o、r都改成大写

ROOt:x:0:0:ROOt:/ROOt:/bin/bash

[root@Hincy:~]# head -1 /etc/passwd | tr -d ':' //删除所有的:字符

rootx00root/root/bin/bash

路径分割

文件路径 /etc/passwd 的含义

文件所在的位置:/etc文件名称:passwd 目录路径 /boot/grub 的含义

目录所在的位置:/boot目录名称:grub

dirname取目录位置

基本用法

dirname “字符串”

[root@Hincy:~]# dirname "/etc/passwd"

/etc

[root@Hincy:~]# var1="/boot/grub"

[root@Hincy:~]# dirname $var1

/boot

basename 取基本名称

基本用法

basename “字符串”

[root@Hincy:~]# basename "/etc/passwd"

passwd

[root@Hincy:~]# var1="/boot/grub"

[root@Hincy:~]# basename $var1

grub

使用随机字符串

随机设备或工具

常见的随机性工具

随机数变量:RANDOM特殊设备文件:/dev/urandomUUID生成命令:uuidgen

[root@Hincy:~]# uuidgen

d20dff5d-2859-42ea-8de4-3f76a6bbaea

[root@Hincy:~]# head -1 /dev/urandom

afsnlnqafoanfafna}M

[root@Hincy:~]#

随机信息的转换

md5sum校验工具

根据输入文本计算出256位(32字符)的MD5编码值输入文本有任何差异,编码结果都不会相同

[root@Hincy:~]# echo $RANDOM | md5sum

34bbrl2lhj1hjhvjhbrk1b2-

[root@Hincy:~]# echo $RANDOM | md5sum

13413h1b4l1yb13y51i9189b -

[root@Hincy:~]# head -1 /dev/urandom | md5sum

c211fib1ifnp1i31ru24bth2b -

[root@Hincy:~]# head -1 /dev/urandom | md5sum

09asncinaif0f080q83rnkfacibcei

截取随机字符串

使用cut命令

直接利用随机信息的md5sum转换结果任意截取32位以内的连续字串

[root@Hincy:~]# echo $RANDOM | md5sum | cut -c -8 //取8位随机串

1badd736

[root@Hincy:~]# echo $RANDOM | md5sum | cut -c -16 //取16位随机串

dd736hsyco9w7h3s

处理uuidgen随机串

默认会有 -连字符再使用cut命令截取所需长度的字符串

[root@Hincy:~]# uuidgen | tr -d '-'

absjhr2b3uotb2u3ybfy8 2b8fy2un2

[root@Hincy:~]# uuidgen | cut -c -8

E6e0f322

[root@Hincy:~]# uuidgen | tr -d '-' | cut -c -16

E6e0f322E6e0f322

以上就是本期文章的所有内容,感谢观看,如果对您有帮助请点赞关注+收藏,一键三连,多谢支持!

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。