Shell对字符串的处理
1.截取子字符串
expr命令
- 基本用法:
expr substr $var1 起始位置 截取长度

cut命令[用的多]
-
基本用法:
- 命令输出 | cut -c 起始位置-结束位置- 命令输出 | cut -d '分隔符' -f 字段编号....

使用${ }表达式
-
基本用法:
- ${var1:起始位置:截取长度}- ${var1::截取长度}

2.字符串替换
使用${ }表达式
-
格式:
- ${var1/old/new}单个替换- ${var1//old/new}全部替换

-
批量替换应用实例
根据模板字符串创建新的/etc/passwd记录
– 参照root的记录作为模板
– 新用户登录名称由变量UN提供

tr 单字替换工具
-
基本用法
- 命令输出 | tr 'abc' 'ABC'- 命令输出 | tr -d 'abc'

3.路径分割
路径的处理
- 文件路径/etc/passwd的含义
- 文件所在位置:/etc
- 文件名称:passwd
- 目录路径 /boot/grub的含义
- 目录所在的位置:/boot
- 目录名称:grub
dirname 去目录位置
- 基本用法:
dirname "字符串"

basename 取基本名称
- 基本用法:
basename "字符串"

4.随机字符串
常见的随机性工具
- 随机数变量:
RANDOM - 特殊设备文件:
/dev/urandom - UUID 生成命令:
uuidgen

md5sum校验工具
目的: 进行随机信息的转换
特性:根据输入文本计算出256位(32字符)的MD5编码值;输入文本有任何差异,编码结果都会不相同

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

处理uuidgen随机串
- 默认会有 - 连字符
- 可利用
tr 命令删除 - 连字符 - 使用
cut 命令截取所需长度的字符串
- 可利用

5.命令替换
提取命令输出
适用场景:
- 简化运维任务,在命令行嵌入另一个命令的输出结果
- 将命令的输出保存到指定变量
使用 ` 反撇号
基本用法: 可执行命令

Shell字符串处理技巧
本文介绍了Shell中处理字符串的各种方法,包括使用expr、cut、${}表达式进行子字符串截取,利用${}和tr进行字符串替换,通过dirname和basename进行路径分割,探讨了随机字符串的生成如md5sum和uuidgen,并讲解了命令替换的概念和应用。
303

被折叠的 条评论
为什么被折叠?



