Я использую комбинацию сценария оболочки, сценария awk и команды find для выполнения нескольких замен текста в сотнях файлов. Размеры файлов варьируются от нескольких сотен байтов до 20 килобайт.
Я ищу способ ускорить этот сценарий.
Я использую Cygwin.
Сценарий оболочки -
#!/bin/bash
if [ $# = 0 ]; then
echo "Argument expected"
exit 1
fi
while [ $# -ge 1 ]
do
if [ ! -f $1 ]; then
echo "No such file as $1"
exit 1
fi
awk -f ~/scripts/parse.awk $1 > ${1}.$$
if [ $? != 0 ]; then
echo "Something went wrong with the script"
rm ${1}.$$
exit 1
fi
mv ${1}.$$ $1
shift
done
Скрипт awk (упрощенный) -
#! /usr/bin/awk -f
/HHH.Web/{
if ( index($0,"Email") == 0) {
sub(/HHH.Web/,"HHH.Web.Email");
}
printf("%s\r\n",$0);
next;
}
Командная строка
find . -type f | xargs ~/scripts/run_parser.sh