[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] tr
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] tr |
Date: |
Mon, 16 Oct 2000 16:55:46 -0200 (EST) |
# aurelio marinho jargas, @ 16:10:
> @ 16/10, shellbh:
> > to fazendo um programinha em bash que converte a lista de usuarios do licq
> > para o zicq, so que estou com um probleminha
> > em certo momento do programa uma variavel fica assim:
> > licq="123456789 Alias = Ana"
> > gostaria de saber como eu faco para tirar "Alias = " de dentro da variavel
> > para que ela fique assim: 123456789 leoserra
> o tr -d corta apenas 1 caractere.
> ele recebeu uma LISTA de caracteres para apagar: A,l,i,a,s, ,=
> por isso apagou o próprio 'Alias =' e também os 2 As do 'Ana'.
> se você usa bash versão 2, pode cortar o 'Alias = ' assim:
>
> licq=${licq/Alias = //}
>
> senão, use o sed:
>
> licq=`echo $licq | sed 's/Alias = //'`
>
> ou o cut com delimitador:
>
> licq=`echo $licq | cut -d' ' -f1,4
>
> e tem outras possibilitades com awk, ed, vi, mas acho que uma
> dessas 3 te servirá.
aproveitando, eu fiz há tempos exatamente a mesma coisa,
usando o sed.
você só precisa ter o ~/.zicqrc já criado, pois o script só anexa mais
UINs.
--->
#!/bin/sh
# licq2zicq
# 15/10/1999 - <address@hidden>
cd ~/.licq/conf
for a in [0-9]*; do
echo -n $a
grep -i alias $a
done |
sed 's/\([0-9]*\).*= \(.*\)/\1 \2/ ; s/[\t ]/_/g' |
sort -n >> ~/.zicqrc
<---
s/\([0-9]*\).*= \(.*\)/\1 \2/ # pega os números no início e o que tiver
# após o '= '
s/[\t ]/_/g # substitui espaço e tab por sublinha
esse \t é um TAB literal, você insere ele com ^V + TAB. (o sed 3.02.80 já
entende isso como um tab.)
--
eliphas
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [shell-script] tr,
Eliphas Levy Theodoro <=