[Comm] Что такое subst?

Yura Kalinichenko =?iso-8859-1?q?yuk_=CE=C1_iceb=2Evinnitsa=2Ecom?=
Пн Сен 19 21:52:15 MSD 2005


В Пнд, 19/09/2005 в 19:05 +0300, Michael Holzman пишет:
> On 9/19/05, Eugene Ostapets <eostapets на gmail.com> wrote:
> > Неужели я так невнятно говорю?
> Увы, моего скудного интеллекта не хватило.
> > eostapets на eugene ~/RPM/SOURCES $ rpm -qf `which subst`
> > sed-4.1.4-alt2
> Грубо говоря, мне надо заменить sed. Жалко. На работе мне это не
> позволят. Будем обходиться старыми средствами :'(

Не знаю чего именно вам не хватает, возможно подойдет вот такой скрипт:

#!/bin/sh

if [ $# -lt 3 ]; then
  echo "Usage: subs from_pattern to_pattern files"
  exit 1
fi

pat=$1
shift
topat=$1
shift
files=$*
tf=`mktemp /tmp/subs.XXXXXXXX`
delims="/ ( ) : % & - ="

for c in $delims ; do
  echo -n "$pat" | grep -q $c
  if [ $? -eq 0 ]; then 
     continue
  else
     echo -n "$topat" | grep -q $c
     if [ $? -eq 0 ]; then
        continue
     else
        dm=$c
        break
     fi
  fi
done
if [ -z "$dm" ]; then
   echo "ERROR: no delimiters"
   exit 1
fi

for fn in $files ; do
  grep -q "$pat" $fn
  if [ $? -eq 0 ]; then
     echo $fn: "$pat" --\> "$topat"
     cp $fn ${fn}~
     sed -e "s${dm}$pat${dm}$topat${dm}g" $fn > $tf
     if [ $? -eq 0 ]; then
        mv $tf $fn
     else
        echo "ERROR-ERROR-ERROR-ERROR"
     fi
  fi
done





Подробная информация о списке рассылки community