Jak vyriznout ze souboru po sobe nasledujici radky

Dalibor Straka dast na panelnet.cz
Sobota Květen 30 16:52:07 CEST 2009


On Sat, May 30, 2009 at 02:55:03PM +0200, Petr Simek wrote:
> 
> Zdravim
> 
> mam soubor ktery muze vypadat napr takhle :
> 
>  echo -ne "\taaa\n\t\tbbb\n\t\tccc\n\t\tddd\n\teee\n"
> 
> a ja bych z nej chtel vyhodit radky ccc a ddd ale jen kdyz jsou
> hned po sobe jinak ne . Neprisel jsem na to jak napsat expression
> do grepu , tak jsem to zkusil skriptem pres :
> 
>   echo -ne "\taaa\n\t\tbbb\n\t\tccc\n\t\tddd\n\teee\n" | while read LINE
> 
> radku po radce ale kdyz pak zpracovavam to $LINE tak mi tam zmizi
> ty pocatecni tabulatory. Zkousel jsem manipulovat s IFS ale to mi
> funguje jen z radky ale ne ve skriptu.
> 

Me tabulatory zustavaji.
echo -ne "\taaa\n\t\tbbb\n\t\tccc\n\t\tddd\n\teee\n" |
while read LINE; do
  echo ${LINE}
done >/tmp/a

V /tmp/a korektne vidim tabulatory. Pri jake operaci vam taby mizi?


> Nenapada Vas jak tohle vyresit ?

Stavovym automatem.

stav="x";
while read LINE; do
  case "$stav" in
     x)
       if echo $LINE | grep 'pattern1' -q; then
          stav = "c";
          ULOZ=$LINE;
       else
          echo $LINE
       fi
     ;;
     c)
       if echo $LINE | grep 'pattern1' -q; then
         echo $ULOZ
         ULOZ=$LINE
       elif echo $LINE | grep 'pattern2' -q; then
         stav = "x"
       else
         echo $ULOZ
	 stav = "x"
       fi
  esac;
done

-- Dalibor Straka



Další informace o konferenci Linux