Linux Shell编程(15)——操作字符串
Bash已经支持了令人惊讶的字符串操作的数量。不幸地,这些工具缺乏统一的标准。一些是参数替换的子集,其它受到UNIX的expr命令的功能的影响。这导致不一致的命令语法和冗余的功能,但这些并没有引起混乱。
字符串长度
${#string}
expr length $string expr "$string" : '.*' stringZ=abcABC123ABCabc echo ${#stringZ} # 15 echo `expr length $stringZ` # 15 echo `expr "$stringZ" : '.*'` # 15
例子:在一个文本文件的段落之间插入一个空白行
#!/bin/bash # paragraph-space.sh # 给单倍行距的文本文件段落之间插入一个空白行. # Usage: $0 <FILENAME MINLEN=45 # 可能需要改变这个值. # Assume lines shorter than $MINLEN characters #+ terminate a paragraph. while read line # 提供和输入文件一样多的行... do echo "$line" # 输出行本身. len=${#line} if [ "$len" -lt "$MINLEN" ] then echo # 在一个短行结束后打印一个空白行. fi done exit 0
匹配字符串开头的子串的长度
expr match "$string" '$substring'
$substring 是一个正则表达式.
expr "$string" : '$substring'
$substring 是一个正则表达式.