返回顶部
首页 > 资讯 > 服务器 >Bash Shell字符串操作小结
  • 861
分享到

Bash Shell字符串操作小结

小结字符串操作 2022-06-04 21:06:06 861人浏览 八月长安
摘要

1. 取长度 str="abcd"expr length $str # 4echo ${#str} # 4expr "$str" : ".*" # 4 好像一般使用第二种2. 查找子串的位置

1. 取长度

str="abcd"
expr length $str # 4
echo ${#str} # 4
expr "$str" : ".*" # 4

好像一般使用第二种
2. 查找子串的位置
str="abc"
expr index $str "a" # 1
expr index $str "b" # 2
expr index $str "x" # 0
expr index $str "" # 0

3. 选取子串
str="abcdef"
expr substr "$str" 1 3 # 从第一个位置开始取3个字符, abc
expr substr "$str" 2 5 # 从第二个位置开始取5个字符, bcdef
expr substr "$str" 4 5 # 从第四个位置开始取5个字符, def
echo ${str:2} # 从第二个位置开始提取字符串, bcdef
echo ${str:2:3} # 从第二个位置开始提取3个字符, bcd
echo ${str:(-6):5} # 从倒数第二个位置向左提取字符串, abcde
echo ${str:(-4):3} # 从倒数第二个位置向左提取6个字符, cde

4. 截取子串
str="abbc,def,ghi,abcjkl"
echo ${str#a*c} # 输出,def,ghi,abcjkl 一个井号(#) 表示从左边截取掉最短的匹配 (这里把abbc字串去掉)
echo ${str##a*c} # 输出jkl, 两个井号(##) 表示从左边截取掉最长的匹配 (这里把abbc,def,ghi,abc字串去掉)
echo ${str#"a*c"} # 输出abbc,def,ghi,abcjkl 因为str中没有"a*c"子串
echo ${str##"a*c"} # 输出abbc,def,ghi,abcjkl 同理
echo ${str#*a*c*} # 空
echo ${str##*a*c*} # 空
echo ${str#d*f) # 输出abbc,def,ghi,abcjkl,
echo ${str#*d*f} # 输出,ghi,abcjkl
echo ${str%a*l} # abbc,def,ghi 一个百分号(%)表示从右边截取最短的匹配
echo ${str%%b*l} # a 两个百分号表示(%%)表示从右边截取最长的匹配
echo ${str%a*c} # abbc,def,ghi,abcjkl
可以这样记忆, 井号(#)通常用于表示一个数字,它是放在前面的;百分号(%)卸载数字的后面; 或者这样记忆,在键盘布局中,井号(#)总是位于百分号(%)的左边(即前面)

5. 字符串替换
str="apple, tree, apple tree"
echo ${str/apple/APPLE} # 替换第一次出现的apple
echo ${str//apple/APPLE} # 替换所有apple
echo ${str/#apple/APPLE} # 如果字符串str以apple开头,则用APPLE替换它
echo ${str/%apple/APPLE} # 如果字符串str以apple结尾,则用APPLE替换它

6. 比较
[[ "a.txt" == a* ]]        # 逻辑真 (pattern matching)
[[ "a.txt" =~ .*.txt ]] # 逻辑真 (regex matching)
[[ "abc" == "abc" ]] # 逻辑真 (string comparision)
[[ "11" < "2" ]] # 逻辑真 (string comparision), 按ascii值比较

7. 连接
s1="hello"
s2="world"
echo ${s1}${s2} # 当然这样写 $s1$s2 也行,但最好加上大括号

8.将一批文件中的所有string替换

for i in file_list 
do
vi $i <<-!
:g/xxxx/s//XXXX/g
:wq
!
done

9.翻转

方法一:
使用rev命令

方法二:
编写脚本实现

#!/usr/bin/awk -f
################################################################
# Description : duplicate rev in awk
################################################################
{
revline = ""
for (i=1;i<=length;i++)
{
revline = substr(,i,1) revline
}
}
END{print revline}


10.匹配

grep
egrep
fgrep

11.得到字符串中某个字符的重复次数

echo $a |tr "x" "n" |wc -l

得到的结果需要减去1
或者
echo $a |awk -F"x" '{print NF-1}'


12.如何将字符串内每两个字符中间插入一个字符
使用sed

echo $test |sed 's/../&[insert char]/g'

--结束END--

本文标题: Bash Shell字符串操作小结

本文链接: https://lsjlt.com/news/17771.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Bash Shell字符串操作小结
    1. 取长度 str="abcd"expr length $str # 4echo ${#str} # 4expr "$str" : ".*" # 4 好像一般使用第二种2. 查找子串的位置...
    99+
    2022-06-04
    小结 字符串 操作
  • Bash Shell字符串操作方法介绍
    这篇文章主要介绍“Bash Shell字符串操作方法介绍”,在日常操作中,相信很多人在Bash Shell字符串操作方法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bash Shell字符串操作方法介绍...
    99+
    2023-06-09
  • Python字符串常规操作小结
    目录一、前言二、拼接字符串三、计算字符串的长度四、截取字符串五、分隔字符串六、检索字符串1.count()方法2.find()方法3.index()方法4.startswith()方...
    99+
    2024-04-02
  • shell字符串操作详解
    1、shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ...
    99+
    2022-06-04
    字符串 详解 操作
  • GO语言字符串常用操作小结
    目录字符串简介常用方法中文字符串截取反转字符串字符串大小写操作去除字符串首位空格合并字符串分割字符串字符串简介 字符串是一段固定长度字符连接起来的字符序列,GO语言中的字符串是由单个...
    99+
    2023-02-09
    GO 字符串常用操作 GO 字符串操作
  • python字符串的常用操作方法小结
    本文实例为大家分享了python字符串的操作方法,供大家参考,具体内容如下 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格 >>> a...
    99+
    2022-06-04
    小结 字符串 操作方法
  • shell如何实现字符串操作
    小编给大家分享一下shell如何实现字符串操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:工作中字符串操作举例 filename='/home...
    99+
    2023-06-09
  • 有哪些shell字符串操作方法
    本篇内容主要讲解“有哪些shell字符串操作方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些shell字符串操作方法”吧!1,取得字符串长度代码如下:string=abc12342341...
    99+
    2023-06-09
  • Python3字符串操作方法总结
    这篇文章主要讲解了“Python3字符串操作方法总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python3字符串操作方法总结”吧!1capitalize() 将字符串的第一个字符转换为...
    99+
    2023-06-04
  • 字符串操作
    # 1.capitalize(cap ita lize)# 功能:字符串首字母大写 # Ex1: # name = 'max' # print(name.capitalize()) # 回车:...
    99+
    2023-01-31
    字符串 操作
  • 数字、字符串操作
    bin()十进制转二进制; oct()十进制转二进制; hex()十进制转二进制;   字符串: 索引: 查找: 移除空白: 长度: 替换:   切片: 分割: 连接: 首字母大写; 居中、...
    99+
    2023-01-30
    字符串 操作 数字
  • python常用字符串操作的总结
    本篇内容主要讲解“python常用字符串操作的总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python常用字符串操作的总结”吧!1、字符串使用乘法运算符*做乘法运算的含义是复制。>&...
    99+
    2023-06-20
  • 总结12个精致的Java字符串操作小技巧
    这篇文章主要介绍“总结12个精致的Java字符串操作小技巧”,在日常操作中,相信很多人在总结12个精致的Java字符串操作小技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”总结12个精致的Java字符串操作...
    99+
    2023-06-16
  • python3字符串操作
    python3字符串操作 1 x = 'abc' 2 y = 'defgh' 3 4 print(x + y) #x+y 5 print(x * 3) #x*n 6 print(x[2]) ...
    99+
    2023-01-31
    字符串 操作
  • python3-字符串操作
    name = "my \tname is {name}, age is {age}." '''print(name.capitalize()) #这段话的首字母大写 print(name.count("a"))...
    99+
    2023-01-31
    字符串 操作
  • python3 字符串操作
          name = "My \tname is  {name} and my age is {year} old"#大写 print(name.capitalize()) # 首字母大写 打印显示 My  name is  {na...
    99+
    2023-01-31
    字符串 操作
  • python3 字符串操作
    字符串操作: 1、 下载python官方手册 2、 先定义一个字符串变量 A = ‘abc’ A.两次TAB键 help(A.选项) #查看帮助 'ABC'.lower() #XXX...
    99+
    2023-01-31
    字符串 操作
  • python字符串操作
    目录一、字符串方法1.字符串的分割2.字符串的查找,替换3.字符串的判断二、切片操作(列表,元组也可以)1.索引2.切片有三个参数[start:end :step]一、字符串方法 1...
    99+
    2024-04-02
  • 总结的7个shell字符串操作方法和实例分享
    每一种语言都有他独自的字符串操作方法,shell也一样,下面以以例子的方式,简单介绍常用方法。 1,取得字符串长度 string=abc12342341 //等号二边不要有空格 ech...
    99+
    2022-06-04
    字符串 操作方法 实例
  • shell编程中的字符串截取方法小结
    一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}' 3....
    99+
    2022-06-04
    小结 字符串 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作