如何使用bash脚本?输入与输出

时间:2015-04-13 17:09:59

标签: bash

我使用bash脚本修改输入和输出的定义:

###Original definition input vs. output:
    infile=$1
    outfile="${infile}.mlf"
    tmpfile="${infile}.tmp"
    tmpfile1="${infile}.tmp1"

用于不同的文件夹,因此脚本,输入和输出位于不同的文件夹中:

###Modified definition input vs. output:
        mid=$1
        infile="/var/www/tmp/input/$mid.vtt"
        outfile="/var/www/tmp/output/$mid.mlf"
        tmpfile="{infile}.tmp"
        tmpfile1="${infile}.tmp1"

我想运行这个脚本。它将用于转换文本文件" $ mid.vtt" (mid表示多媒体ID)来自"输入"文件夹到" $ mid.mlf"到"输出"夹。我修改了它,但显示了一些错误消息:

  

" cat:/var/www/tmp/output/1.vtt.vtt:没有这样的文件或目录"   " cat:/var/www/tmp/output/1.vtt.vtt.tmp1:没有这样的文件或目录"   " rm:无法删除`/var/www/tmp/output/1.vtt.vtt.tmp1' ;:没有这样的文件或目录"

整个bash脚本如下。我只更改了输入与输出的定义。

###input vs. output
                mid=$1
                infile="/var/www/tmp/input/$mid.vtt"
                outfile="/var/www/tmp/output/$mid.mlf"
                tmpfile="${infile}.tmp"
                tmpfile1="${infile}.tmp1"
                i=1
                touch $tmpfile

            ###script
                cat $infile | grep -v 'WEBVTT' | grep -v "\--" | grep -v '^$' | sed 's/?/./g' | sed 's/!/./g' | tr -d '.' | tr -d "," | tr -d ";" | tr -d ":" | awk '{ print tolower($0) }' > $tmpfile

                nlines=$(cat $tmpfile | wc -l)

                while [ $i -le $nlines ]
                do
                    line=$(cat $tmpfile | sed $i'q;d')
                    printf '%s\n' $line | sed '/^\s*$/d' >> $tmpfile1
                    i=$[$i+1]
                done

            ###export to output
                echo "#!MLF!#" > $outfile
                echo "\"*/dummyfile.lab\"" >> $outfile
                cat $tmpfile1 | awk '{if($0 !~ /\*/) print "0 0 "$0; else print $0}' >> $outfile
                echo "." >> $outfile

            ###deleting tmp files
                rm $tmpfile
                rm $tmpfile1   

我不知道问题出在哪里。我使用chmod设置了正确的权限。输入文件存在,文件夹存在..

1 个答案:

答案 0 :(得分:0)

现在工作正常。

  

mid = $ 1 infile =“/ home / var / www / vids / $ mid / $ mid.vtt”   OUTFILE = “/无功/ WWW的/ tmp / VTT到MLF / $ {MID} .mlf”   TMPFILE = “/无功/ WWW的/ tmp / VTT到MLF / $ {MID}的.tmp”   tmpfile1 = “/无功/网络/ TMP / VTT到MLF / $ {中间} .tmp1”