shell实例(六) ---字符串操作

来源:互联网 发布:java入门与实战教程 编辑:程序博客网 时间:2024/05/22 02:12

1.文件改名,删除后缀.co

#! /bin/sh
STR=co
directory=$PWD
c=0
for file in $directory/*
do
 if [ ${file:(-2)} = $STR ]
 then
   mv $file ${file%.$STR}
 fi
done

exit 0

 

2.转化文件格式,同时更改文件名

#! /bin/sh

OPERATION=macptopbm -----使用"netpbm"包中的"macptopbm"程序进行转换

SUFFIX=pbm

if [ -n "$1" ]

then

  directory=$1

else

 directory=$PWD

fi

 

for file in $directory/*

do

 filename=${file%.*c}

 $OPERATION $file > "$filename.$SUFFIX

 rm -f $file

 echo "$filename.$SUFFIX"

done

 

exit 0

 

3.将音频流文件转化为ogg格式的文件

#! /bin/sh
#mplayer
#ogg and oggenc database

OFILEPREF=${1%%ra}
OFILESUFF=wav
OUTFILE="$OFILEPREF""$OFILESUFF"
E_NOARGS=65

if [ -z "$1" ]
then
 echo "Usage: `basename $0` [filename]"
 exit E_NOARGS
fi

mplayer "$1" -ao pcm:file=$OUTFILE
oggenc "$OUTFILE"

rm "$OUTFILE"
exit $?

 

4.模拟getopt

#! /bin/sh
getopt_simple(){
 echo "getopt_simple()"
 echo "Parameters are '$*'"
 until [ -z "$1" ]
 do
  echo "Processing parameter of: '$1'"
  echo ${1:0:1} ----提取参数的第一个字符
  if [ ${1:0:1} = '/' ]
  then
    tmp=${1:1}  ----提取参数除第一个字符外的所有字符

    echo "tmp: " ${1:1}
    parameter=${tmp%%=*} -----提取tmp等号后所有值
    value=${tmp##*=} ------去除tmp等号前所有值
    echo "Parameter: '$parameter', value: '$value'"
    eval $Parameter=$value
  fi
  shift
done
}

getopt_simple $*
echo "test is '$test'"
echo "test2 is '$test2'"

exit 0

 

5.提取字符串的另一种方法

#! /bin/sh
string=23skidool
echo ${string:2:4}
echo | awk '       --------使用一个空的"echo" 通过管道传递给awk一个假的输入,这样就不必提供一个文件名给awk
 {
   print substr("'"${string}"'",3,4)
 } '
exit 0

原创粉丝点击