字符串处理
截取子字符串
使用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
以上就是本期文章的所有内容,感谢观看,如果对您有帮助请点赞关注+收藏,一键三连,多谢支持!
推荐文章
发表评论