Linux Shell程式設計(15)——操作字串

尹成發表於2014-09-30

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 是一個正規表示式.

相關文章