美文网首页
14 - shell字符串处理及变量

14 - shell字符串处理及变量

作者: 舍是境界 | 来源:发表于2022-03-26 08:08 被阅读0次

字符串处理机制

字串截取

  • 语法格式:${变量:起始位置:长度}
phone=18234567890
echo ${#phone}     #统计变量长度
11

echo ${phone:0:3} 
182

echo ${phone:3:3} 
345

echo ${phone:4}   
4567890

echo ${phone:4:-2}
45678

子串替换

  • 替换1个结果:${变量/旧字串/新字串}
  • 替换全部结果:${变量//旧字串/新字串}
phone=18234567890 
${phone/8/x} 
1x234567890

${phone//8/x}
1x234567x90

字串掐头

  • 从左向右,最短匹配删除:${变量#关键词}
  • 从左向右,最长匹配删除:${变量##关键词}
  • 对变量掐头不会改变变量原有值
echo 'root:x:0:0:root:/root:/bin/bash' > text.txt
 A=`head -1 text.txt`  
echo $A                                          
root:x:0:0:root:/root:/bin/bash

echo ${A#*:}
x:0:0:root:/root:/bin/bash

echo ${A##*:}
/bin/bash

字串去尾

  • 从左向右,最短匹配删除:${变量%关键词}
  • 从右向左,最长匹配删除:${变量%%关键词}
  • 对变量的操作不会影响原变量的值
echo $A                                          
root:x:0:0:root:/root:/bin/bash

echo ${A%:*}
root:x:0:0:root:/root

 echo ${A%%:*}
root

批量修改文件扩展名

touch {a,b,c,d,e,f}.txt
#!/bin/bash
  
for i in $(ls *.txt)
do
  mv $i ${i%.*}.doc
done
#!/bin/bash
  
for i in $(ls *.$1)
do
  mv $i ${i%.*}.$2
done

变量初始化

  • 变量有值,则返回该变量的值
  • 变量无值,则返回初始值:格式:${变量:-关键词}
echo ${X:-xyz}
123

echo ${ABC:-xyz}
xyz

小结

  • ${变量:起始位置:长度}
  • {变量/old/new}、{变量//old/new}
  • {变量##*关键词}、{变量%%关键词*}
  • ${变量:-关键词}
  • 案例
    • 子串截取
    • 子串替换
    • 字符串掐头去尾
    • 变量初始化

相关文章

  • 14 - shell字符串处理及变量

    字符串处理机制 字串截取 语法格式:${变量:起始位置:长度} 子串替换 替换1个结果:${变量/旧字串/新字串}...

  • Shell脚本基础

    1.Shell变量 2.Shell字符串 3.Shell数组 4.Shell注释 5.Shell参数传递 参数处理...

  • 二、变量的高级用法

    一、变量替换 二、字符串处理 字符串处理练习 shell语法 read -p "pls input your ch...

  • Linux教程——Shell中字符串与数组操作实例

    Shell中字符串与数组操作实例 前言 本篇主要介绍了介绍在Shell脚本中对于字符串的处理,数据变量的定义与使用...

  • Shell脚本语言一

    一、语法 格式 运行 Shell变量 Shell字符串 Shell数组 Shell注释 Shell传递参数 She...

  • 使用shell脚本

    使用方式 shell 变量 shell 字符串操作 shell 数组 shell 注释 shell 命令行参数 s...

  • 20170829 Shell编程进阶(二)

    函数的基本含义函数的定义和使用数组字符串处理特殊的处理变量用法 一、函数基本含义: 函数:多条Shell命令组成的...

  • Shell基础语法

    shell不是面向对象语言 变量 shell中赋值的变量值全部为字符串,不存在数字类型 变量分类全局变量 ≈ 环...

  • 七.Shell之数字运算必会3类命令

    整形数处理基本用法 先看如下命令: 可以看出,Shell中变量默认是按字符串进行处理的,但是我们想进行数字运算该怎...

  • shell学习笔记(一):变量

    一 shell变量 声明变量名和等号之间不能有空格。 赋值shell在默认情况下不会区分变量类型,变量值以字符串形...

网友评论

      本文标题:14 - shell字符串处理及变量

      本文链接:https://www.haomeiwen.com/subject/gudbdrtx.html