目的

shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要。本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你心中的那个她。

截断

例子:file=/dir1/dir2/dir3/my.file.txt

#拿掉第一条/及其左边的字符串${file#*/}结果:dir1/dir2/dir3/my.file.txt #拿掉最后一条/及其左边的字符串${file##*/}结果:my.file.txt #拿掉第一个.及其左边的字符串${file#*.}结果:file.txt  #拿掉最后一个.及其左边的字符串${file##*.}结果:txt#拿掉最后条/及其右边的字符串${file%/*}结果:/dir1/dir2/dir3#拿掉第一条/及其右边的字符串${file%%/*}结果:(空值)#拿掉最后一个.及其右边的字符串${file%.*}结果:/dir1/dir2/dir3/my.file#拿掉第一个.及其右边的字符串${file%%.*}结果:/dir1/dir2/dir3/my

记忆方法很简单:

#表示去掉左边, ##去掉最后一个

%表示去掉右边, %%去掉第一个

提取

单一符号是最小匹配,两个符号是最大匹配。

#提取最左边的 5 个字节${file:0:5/dir1${file:5:5}:提取第 5 个字节右边的连续 5 个字节:/dir2

替换

#将第一个 dir 提换为 path${file/dir/path}结果:/path1/dir2/dir3/my.file.txt#将全部 dir 提换为 path${file//dir/path}结果:/path1/path2/path3/my.file.txt

针对不同的变量状态赋值(没设定、空值、非空值):

#若$file没有设定,则使用my.file.txt作返回值。(空值及非空值时不作处理)${file-my.file.txt}#若$file没有设定或为空值,则使用my.file.txt作返回值。(非空值时不作处理)${file:-my.file.txt}#若$file设为空值或非空值,均使用my.file.txt作返回值。(没设定时不作处理)${file+my.file.txt}#若$file为非空值,则使用my.file.txt作返回值。(没设定及空值时不作处理)${file:+my.file.txt}#若$file没设定,则使用my.file.txt作返回值,同时将$file 赋值为 my.file.txt。(空值及非空值时不作处理)${file=my.file.txt}#若$file没设定或为空值,则使用my.file.txt作返回值,同时将 $file 赋值为 my.file.txt。(非空值时不作处理)${file:=my.file.txt}#若$file没设定,则将my.file.txt输出至 STDERR。(空值及非空值时不作处理)${file?my.file.txt}#若$file没设定或为空值,则将my.file.txt输出至STDERR。(非空值时不作处理)${file:?my.file.txt}注意: ":+"的情况是不包含空值的.":-", ":="等只要有号就是包含空值(null).

变量的长度

${#file}

数组运算

A=(a b c def)${A[@]} 或 ${A[*]} #可得到 a b c def (全部组数)${A[0]} #可得到 a (第一个组数),${A[1]} 则为第二个组数...${#A[@]} 或 ${#A[*]} #可得到 4 (全部组数数量)${#A[0]} #可得到 1 (即第一个组数(a)的长度),${#A[3]} 可得到 3 (第四个组数(def)的长度)

oracle按特定字符截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...相关推荐

  1. 截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...

    目的 shell脚本中各种条件的判断,都需要对判定条件精准把控,而字符串在脚本中用的是最多的,怎样准确的获取你想要的字符串至关重要.本文详细介绍了shell脚本中妙用字符串的替换和截取,让你精准获得你 ...

  2. python希腊字母字符串_#10 Python字符串

    前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...

  3. python字符串后面添加字符串_什么是字符串?怎样在Python中添加字符串?

    字符串是一种表示文本的数据类型,字符串中的字符可以是ASCII字符.各种符号以及各种Unicode字符.Python中的字符串有如下三种表现方式. 第1种方式:使用单引号包含字符.示例代码如下: 'a ...

  4. 减去字符串_从文本字符串中提取指定值的6个超级技巧解读

    在实际的工作中,从指定的字符串中提取指定文本也是常用的技巧之一,除了手动操作之外,下文的8种应用技巧也是必须要掌握的. 一.Left函数法.功能:从指定文本字符串的第一个字符开始,提取指定长度的字符串 ...

  5. go regexp匹配字符串_多模式字符串匹配算法ac自动机(用go语言实现)

    本文主要包括三部分内容 字典树 建立ac自动机 ac自动机匹配规则 字典树 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 典型应用是用于统计,排序和保存大量的字符串(但不仅限 ...

  6. (实用篇)php常用字符串函数实例总结【转换,替换,计算,截取,加密】

    代码如下: 本文实例总结了php常用字符串String函数.分享给大家供大家参考,具体如下: nl2br 功能:化换行符为 <?php$str = "cat isn't \n dog& ...

  7. linux shell脚本攻略第3版_「技术干货」师傅说不会写shell脚本的网安不是一个好黑客,实战...

    shell脚本? 在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就 ...

  8. slice和splice数组的截取/splice可以插入、删除、替换/数组截取 slice的详细解释

    数组截取 slice slice是从第几位开始截取,但是不包括第几位,假如从第一位开始截取,到第三位,那么就是不包括第一位,直接去第二位和第三位. 他的参数可以写1个arr.slice(1),可以写两 ...

  9. c++ 数组的输入遇到特定字符停止输入_滑动窗口思维--挑战“无重复字符的最长子串”

    文章来源: 饭饭的Python学习之路 作者: 一粒米饭 今天要挑战的是"无重复字符的最长子串". 难度:中等 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 ...

最新文章

  1. 杨桃32开发版最小核心板和底板接口定义以及各io口功能
  2. 解决intellij IEDA mapper.xml文件警告以及could not autowire的错误提示
  3. unix查找的字符串包含特殊字符_python3从零学习-5.4.7、Unix风格路径名模式扩展glob...
  4. mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中
  5. Day10 Python基础之特殊函数(八)
  6. linux(ubuntu)新建用户只有一个$问题,Ubuntu新建用户并指定目录
  7. linux卡在nfs挂载怎么办,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  8. vue 中 provide 和 inject 共享数据
  9. python必背入门代码-初学Python必背手册
  10. mediainfo php,media.php
  11. webpack2.0构建Reactjs基础工程
  12. 几个不知道算不算经典的游戏
  13. 开环传递函数判断系统类型_已知系统的开环传递函数,试用Nyquist稳定判据判断系统的稳定性。_学小易找答案...
  14. mac outlook删除服务器邮件,设置苹果MAC 端outlook客户端说明
  15. uni-app 省市区选择器
  16. 备受推崇的《R语言实战》真的值得如此好评吗?
  17. 基带信号与频带信号的基础认识
  18. 手机写python工具_GitHub - littleningmeng/pyphone: Python实现的安卓手机投屏工具
  19. 加权平均资本成本【读书笔记】
  20. 用keil语言定义c51,51单片机Keil C51的使用(C语言)

热门文章

  1. Java教程分享:JVM垃圾回收机制之对象回收算法
  2. nginx php fpm sock_nginx使用sock方式调用php-fpm
  3. cmd命令生成webservice_使用wsimport命令生成webService客户端代码实例
  4. opencv4.4.0函数手册_Cobalt strike3.0使用手册
  5. 前端之JQuery(二)
  6. 8.Java有关变量的面试题
  7. 小余学调度:学习记录2021.8月
  8. 爬虫笔记:爬虫的基本原理
  9. wxWidgets:wxHyperlinkEvent类用法
  10. wxWidgets:wxGridUpdateLocker类用法