从文本文件UTF 8中删除<feff>

时间:2015-04-22 18:37:37

标签: bash utf-8

我使用此BASH脚本将文本从一个文本文件过滤到另一个文本文件。文本以UTF 8编码。

#!/bin/bash
mid=$1
infile="/var/www/tmp/textgrid_uploads/${mid}.txt"
outfile="/home/var/www/vids/$mid/${mid}_textgrid.mlf"
tmpfile="/home/var/www/vids/$mid/${mid}.tmp"

i=1

touch $tmpfile

cat $infile | grep "text =" | cut -d '"'  -f2 | tr -d ',' | tr -d '.' |  tr -d ':' |  tr -d ';' |  tr -d '!' | tr -d '?' > $tmpfile
#| awk '{ print tolower($0) }'

#cat $infile  | grep -v "<" | egrep -v '^[[:space:]]*$' | tr -d '.' | tr -d "," | tr -d ";" | tr -d ":" | tr -d "^" | tr -d '#' | tr -d '?' | tr -d '!' | tr -d '%' | tr -d '@' | tr -d '*' | tr -d '~' | grep -v '((xxxxx))' | awk '{ print tolower($0) }' > $tmpfile

#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)

echo "#!MLF!#" >> $outfile
echo "\"*/dummyfile.lab\"" >> $outfile


while [ $i -le $nlines ]
do
        line=$(cat $tmpfile | sed $i'q;d') #zobrazi konkretny riadok
        printf '%s\n' $line | sed '/^\s*$/d' | cut -d "/" -f1 | egrep -v '^[[:space:]]*$' >> $outfile #zapis po riadkoch s odstranenim znaciek
        i=$[$i+1] #pocitadlo
done
echo "."  >> $outfile

rm $tmpfile

此脚本的输出为:

#!MLF!# 
"*/dummyfile.lab"  
<feff> V utorok o devätnástej bude vo fejs

我想用两个括号删除第一个单词feff。请举例说明如何做到这一点。我是Bash的新手,我只是使用这个我没有创建它的脚本。多谢你们。

0 个答案:

没有答案