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

    技术2022-05-19  16

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

    #! /bin/shSTR=codirectory=$PWDc=0for file in $directory/*do if [ ${file:(-2)} = $STR ] then   mv $file ${file%.$STR} fidone

    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=wavOUTFILE="$OFILEPREF""$OFILESUFF"E_NOARGS=65

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

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

    rm "$OUTFILE"exit $?

     

    4.模拟getopt

    #! /bin/shgetopt_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  shiftdone}

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

    exit 0

     

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

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


    最新回复(0)