shell string
来源:互联网 发布:微信数据 sd卡 编辑:程序博客网 时间:2024/06/05 00:40
In bash shell, when you use a dollar sign followed by a variable name, shell expands the variable with its value. This feature of shell is called parameter expansion.
But parameter expansion has numerous other forms which allow you to expand a parameter and modify the value or substitute other values in the expansion process. In this article, let us review how to use the parameter expansion concept for string manipulation operations.
This article is part of the on-going bash tutorial series. Refer to our earlier article on bash { } expansion.
1. Identify String Length inside Bash Shell Script
${#string}
The above format is used to get the length of the given bash variable.
$ cat len.sh#! /bin/bashvar="Welcome to the geekstuff"echo ${#var}$ ./len.sh24
To understand more about bash variables, read 6 Practical Bash Global and Local Variable Examples.
2. Extract a Substring from a Variable inside Bash Shell Script
Bash provides a way to extract a substring from a string. The following example expains how to parse n characters starting from a particular position.
${string:position}
Extract substring from $string at $position
${string:position:length}
Extract $length of characters substring from $string starting from $position. In the below example, first echo statement returns the substring starting from 15th position. Second echo statement returns the 4 characters starting from 15th position. Length must be the number greater than or equal to zero.
$ cat substr.sh#! /bin/bashvar="Welcome to the geekstuff"echo ${var:15}echo ${var:15:4}$ ./substr.shgeekstuffgeek
Also, refer to our earlier article to understand more about $*, $@, $#, $$, $!, $?, $-, $_ bash special parameters.
3. Shortest Substring Match
Following syntax deletes the shortest match of $substring from front of $string
${string#substring}
Following syntax deletes the shortest match of $substring from back of $string
${string%substring}
Following sample shell script explains the above two shortest substring match concepts.
$ cat shortest.sh#! /bin/bashfilename="bash.string.txt"echo ${filename#*.}echo ${filename%.*}$ ./shortest.shAfter deletion of shortest match from front: string.txtAfter deletion of shortest match from back: bash.string
In the first echo statement substring ‘*.’ matches the characters and a dot, and # strips from the front of the string, so it strips the substring “bash.” from the variable called filename. In second echo statement substring ‘.*’ matches the substring starts with dot, and % strips from back of the string, so it deletes the substring ‘.txt’
4. Longest Substring Match
Following syntax deletes the longest match of $substring from front of $string
${string##substring}
Following syntax deletes the longest match of $substring from back of $string
${string%%substring}
Following sample shell script explains the above two longest substring match concepts.
$ cat longest.sh#! /bin/bashfilename="bash.string.txt"echo "After deletion of longest match from front:" ${filename##*.}echo "After deletion of longest match from back:" ${filename%%.*}$ ./longest.shAfter deletion of longest match from front: txtAfter deletion of longest match from back: bash
In the above example, ##*. strips longest match for ‘*.’ which matches “bash.string.” so after striping this, it prints the remaining txt. And %%.* strips the longest match for .* from back which matches “.string.txt”, after striping it returns “bash”.
5. Find and Replace String Values inside Bash Shell Script
Replace only first match
${string/pattern/replacement}
It matches the pattern in the variable $string, and replace only the first match of the pattern with the replacement.
$ cat firstmatch.sh#! /bin/bashfilename="bash.string.txt"echo "After Replacement:" ${filename/str*./operations.}$ ./firstmatch.shAfter Replacement: bash.operations.txt
Replace all the matches
${string//pattern/replacement}
It replaces all the matches of pattern with replacement.
$ cat allmatch.sh#! /bin/bashfilename="Path of the bash is /bin/bash"echo "After Replacement:" ${filename//bash/sh}$ ./allmatch.shAfter Replacement: Path of the sh is /bin/sh
Taking about find and replace, refer to our earlier articles – sed substitute examples and Vim find and replace.
Replace beginning and end
${string/#pattern/replacement
Following syntax replaces with the replacement string, only when the pattern matches beginning of the $string.
${string/%pattern/replacement
Following syntax replaces with the replacement string, only when the pattern matches at the end of the given $string.
$ cat posmatch.sh#! /bin/bashfilename="/root/admin/monitoring/process.sh"echo "Replaced at the beginning:" ${filename/#\/root/\/tmp}echo "Replaced at the end": ${filename/%.*/.ksh}$ ./posmatch.shReplaced at the beginning: /tmp/admin/monitoring/process.shReplaced at the end: /root/admin/monitoring/process.ksh
- shell string
- shell string字符串操作
- String Operations in Shell
- Shell String Fuzzy Comparison
- Shell 的string 操作
- shell string wrap
- shell-3-string
- Linux shell string 操作
- stl string file shell 比较
- Shell 字符串截取:${varible##*string} ${varible#*string} ${varible%%string*} ${varible%string*}
- 定制Bash Shell的提示符(prompt string)
- Linux Shell - Trying to split a string into two variables
- node.js 里面执行shell命令如何escape string
- Linux Bash Shell学习(八):shell编程基础——string操作
- shell 脚本string的截取(str1=${str#*string} str2=${str%sring*})
- shell
- shell
- shell
- 百度之星之H:用户请求中的品牌
- hadoop 提交任务总是挂起状态
- 什么是特征向量,特征值,矩阵分解
- 神经网络比较
- C++文件二进制流控制
- shell string
- 关于TableView中图片的延时加载
- 11级_Java_曹建波5.29 数据库的查询和视图2 & FROM子句
- ubuntu 链接 Lua5.2 报错
- Action控制select控件的内容(1.struts方法;2.js方法)
- iphone table每行实现可编辑的风格
- Android 4.0.3 显示系统深入理解
- 四五月份小结
- Shell脚本学习指南(读书笔记)