【shell】shell字符串分割|文件分割

目录

一、字符串分割

1、awk分割

2、利用shell 中 变量 的字符串替换成空格分割

 3、设置分隔符,通过 IFS 变量 

4、利用tr 指令实现字符替换

二、文件分割

附录

【转】linux下awk内置函数的使用(split/substr/length)

四、gsub函数

五、正则表达式


一、字符串分割

1、awk分割

把 ceph_12.2.1.centos.x86_64.tar.gz-2021-10-08-08后面的2021-10-08-08按“-”分割,取最后一个数字。

#split($1, arr, "-") ,把第一列,以“-”为分割符分割,把分割得到的结果放入arr数字中。(arr数组从1开始)

echo "ceph_12.2.1.centos.x86_64.tar.gz-2021-10-08-08"|awk '{split($1, arr, "-"); print arr[5]}' 

#注意split是awk的内置函数,更多见文章末尾

2、利用shell 中 变量 的字符串替换成空格分割

原理:

${parameter//pattern/string} 

用string来替换parameter变量中所有匹配的pattern

参考文章: Shell_Shell 脚本中字符串的相关操作_迎难而上-CSDN博客

string="hello,shell,split,test"  中的“,”替换成空格后赋值给array 就成了数组赋值

#!/bin/bash
 
string="hello,shell,split,test"  
array=(${string//,/ })  
 
for var in ${array[@]}
do
   echo $var
done

 3、设置分隔符,通过 IFS 变量 

原理

自定义IFS变量, 改变分隔符, 对字符串进行切分

参考文章:

Shell中的IFS解惑_Simple life-CSDN博客  

#!/bin/bash
string="hello,shell,split,test"  
#对IFS变量 进行替换处理


OLD_IFS="$IFS"  #保存当前shell默认的分割符,一会要恢复回去
IFS=","                  #将shell的分割符号改为,“”
array=($string)     #分割符是“,”,"hello,shell,split,test" 赋值给array 就成了数组赋值
IFS="$OLD_IFS"  #恢复shell默认分割符配置
for var in ${array[@]}
do
   echo $var
done

4、利用tr 指令实现字符替换

原理

由于只是对单个字符进行的替换,则可以用  echo args |   tr "oldSpilt" "newSpilt"  的方式实现。

r 指令讲解

背景介绍

tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

语法
tr(选项)(参数)
选项
  -c或——complerment:取代所有不属于第一字符集的字符;
  -d或——delete:删除所

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值