Shell对字符串的处理

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

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

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.命令替换

提取命令输出

适用场景:

  • 简化运维任务,在命令行嵌入另一个命令的输出结果
  • 将命令的输出保存到指定变量

使用 ` 反撇号

基本用法: 可执行命令

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值