`
javathinker
  • 浏览: 241678 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Shell常用处理字符串方法(备查)

 
阅读更多
一、构造字符串

直接构造
STR_ZERO=hello
STR_FIRST="i am a string"
STR_SECOND='success'

重复多次
#repeat the first parm($1) by $2 times
strRepeat()
{
local x=$2
if [ "$x" == "" ]; then
x=0
fi

local STR_TEMP=""
while [ $x -ge 1 ];
do
STR_TEMP=`printf "%s%s" "$STR_TEMP" "$1"`
x=`expr $x - 1`
done
echo $STR_TEMP
}

举例:
STR_REPEAT=`strRepeat "$USER_NAME" 3`
echo "repeat = $STR_REPEAT"


二、赋值与拷贝

直接赋值
与构造字符串一样
USER_NAME=terry

从变量赋值
ALIASE_NAME=$USER_NAME


三、联接

直接联接两个字符串
STR_TEMP=`printf "%s%s" "$STR_ZERO" "$USER_NAME"`
使用printf可以进行更复杂的联接


四、求长

求字符数(char)
COUNT_CHAR=`echo "$STR_FIRST" | wc -m`
echo $COUNT_CHAR

求字节数(byte)
COUNT_BYTE=`echo "$STR_FIRST" | wc -c`
echo $COUNT_BYTE

求字数(word)
COUNT_WORD=`echo "$STR_FIRST" | wc -w`
echo $COUNT_WORD


五、比较

相等比较
str1 = str2

不等比较
str1 != str2

举例:
if [ "$USER_NAME" = "terry" ]; then
echo "I am terry"
fi

小于比较
#return 0 if the two string is equal, return 1 if $1 < $2, else 2strCompare() { local x=0 if [ "$1" != "$2" ]; then x=2 localTEMP=`printf "%s\n%s" "$1" "$2"` local TEMP2=`(echo "$1"; echo "$2") |sort` if [ "$TEMP" = "$TEMP2" ]; then x=1 fi fi echo $x }


六、测试

判空
-z str

判非空
-n str

是否为数字
# return 0 if the string is num, otherwise 1
strIsNum()
{
local RET=1
if [ -n "$1" ]; then
local STR_TEMP=`echo "$1" | sed 's/[0-9]//g'`
if [ -z "$STR_TEMP" ]; then
RET=0
fi
fi
echo $RET
}

举例:
if [ -n "$USER_NAME" ]; then
echo "my name is NOT empty"
fi

echo `strIsNum "9980"`


七、分割

以符号+为准,将字符分割为左右两部分
使用sed
举例:
命令 date --rfc-3339 seconds 的输出为
2007-04-14 15:09:47+08:00
取其+左边的部分
date --rfc-3339 seconds | sed 's/+[0-9][0-9]:[0-9][0-9]//g'
输出为
2007-04-14 15:09:47
取+右边的部分
date --rfc-3339 seconds | sed 's/.*+//g'
输出为
08:00

以空格为分割符的字符串分割
使用awk
举例:
STR_FRUIT="Banana 0.89 100"
取第3字段
echo $STR_FRUIT | awk '{ print $3; }'


八、子字符串

字符串1是否为字符串2的子字符串
# return 0 is $1 is substring of $2, otherwise 1
strIsSubstring()
{
local x=1
case "$2" in
*$1*) x=0;;
esac
echo $x
}
分享到:
评论

相关推荐

    shell 批量处理 字符串指令行

    首先,让我们了解一些基本的shell字符串处理命令: 1. **变量赋值**:在shell中,我们可以通过`var="string"`来定义一个字符串变量。 2. **引用**:双引号(`"`)内的变量会被解析,单引号(`'`)内的变量则不会。例如...

    Shell脚本中计算字符串长度的5种方法

    这是Shell脚本中最常用的计算字符串长度的方法之一。通过将字符串赋值给一个变量,然后使用 `${#variable}` 的形式即可获取其长度。 **示例代码**: ```bash name="Alex" echo ${#name} ``` 这种方法非常直观且易于...

    shell 字符串操作

    ### Shell 字符串操作详解 #### 一、引言 在Shell编程中,字符串操作是一项基本而重要的技能。无论是简单的脚本还是复杂的自动化任务,掌握如何有效地...希望本文能帮助读者更好地理解和运用Shell中的字符串处理技术。

    shell字符串处理

    在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间...

    shell中字符串处理方

    ### Shell中的字符串处理方法 #### 引言 在Shell编程中,字符串处理是一项重要的技能,尤其是在Linux环境下。本文将深入探讨几种高效的字符串处理技术,并通过实际示例展示这些技巧的应用场景。 #### 字符串截断 ...

    shell字符串的截取

    Shell 字符串截取可以使用多种方法,以下是一些常见的方法: 1. 使用 expr 命令:expr substr “$a” 1 8 可以截取变量 a 的前 8 位字符。 2. 使用 awk 命令:echo $a|awk ‘{print substr(,1,8)}’ 可以截取变量 a...

    Shell编程范例之字符串操作-TinyLab原创

    本知识点将介绍Shell编程中字符串操作的相关知识,内容涉及字符串的基本概念、属性以及常见的字符串操作方法。 字符串的属性和类型是编程时需要首先明确的概念。在计算机科学中,字符串是由有限字符序列构成的,...

    shell字符串比较判断是否为数字

    ### Shell字符串比较与数字判断详解 #### 一、概述 在Shell脚本编程中,进行...通过本文介绍的这些操作符和示例,你可以更好地理解和掌握Shell脚本中字符串和数字的比较方法,从而编写出更加强大和灵活的脚本程序。

    shell中字符串截取

    `awk`是一种强大的文本处理工具,可以用于复杂的字符串处理任务。 - **语法**: `echo $string | awk '{print substr($0, start, length)}'` - `$string`: 输入的字符串。 - `start`: 开始位置。 - `length`: 截取...

    Linux Shell字符串比较

    在实际应用中,Shell脚本可能需要处理更为复杂的数字比较场景,以下是一些常用的比较方法: ##### 方法一:基本的比较方法 ```bash if [ ${A} -lt ${B} ]; then echo "A is less than B" fi ``` 这种方法简单...

    linux shell 字符串的截取

    linux shell 字符串的截取

    shell脚本,批量替换字符串

    将需要替换的文件放到脚本同级目录,直接执行脚本即可。 根据脚本提示输入 替换前和替换后的字符串

    用Shell判断字符串包含关系的方法小结

    以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。 方法一:利用grep查找 strA=long string strB=string result=$(echo $strA | grep ${strB}) if [[ $result != ]] ...

    shell编程中的字符串截取方法小结

    一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : ‘\(.\\).*’ 6.echo $a|dd bs=1 count=8 2&gt;...

    Shell字符串截取的详细方法

    一、Linux shell 截取字符变量的前8位,有方法如下: 代码如下:1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}’3.echo $a|cut -c1-84.echo $5.expr $a : ‘\(.\\).*’6.echo $a|dd bs=1 count=8 2&gt;...

    Shell字符串比较相等、不相等方法小结

    首先,我们需要了解Shell中的字符串处理基本规则,以及不同比较运算符的区别。 1. **字符串赋值与引号**: 在Shell中,字符串可以通过`$`符号引用。单引号`' '`不会进行变量替换,而双引号`"`则会。例如: ```...

    shell中字符串、数值的比较.rar_shell中字符串、数值的比较

    综上所述,掌握这些基本的字符串和数值比较方法,你就可以编写出更复杂的Shell脚本来处理各种逻辑判断和流程控制。熟练运用这些技巧,可以极大地提高你在系统管理和自动化任务中的效率。通过实践和不断地学习,你将...

    shell脚本入门-变量、字符串, Shell脚本中变量与字符串的基础操作教程

    内容概要:shell脚本入门——变量、字符串, 本文详细介绍了 Shell 脚本中变量和字符串的基本操作,包括变量的定义、使用和作用域,以及字符串的定义、操作和拼接。通过具体的代码示例,解释了如何定义和使用变量,...

    Shell中去除字符串里的空格或指定字符的方法

    这些方法都是在Shell中处理字符串空格或指定字符的有效手段。需要注意的是,当使用`echo`和`sed`或`echo`和参数扩展结合时,需要合理使用引号以保持字符串的完整性。此外,记得在实际应用中根据需要选择合适的方法,...

    Shell中实现字符串反转方法分享

    ### Shell中实现字符串反转的方法 在处理文本数据时,经常需要对字符串进行各种操作,其中字符串的反转是一种常见的需求。本文将详细介绍如何在Shell环境中实现字符串的反转,并提供多种编程语言(包括awk、Python...

Global site tag (gtag.js) - Google Analytics