Newsgroup: it.comp.os.linux.iniziare
Titolo: Come si fa a ripulire un flie tramite comandi shell?

Dovrei ripulire un file asci da caratteri che non mi interessano.
All'interno del file si trovano delle stringhe simili a questa:
  AfterStep-1.7.164-2.i386.rpm                    1220 Kb    Wed Feb  2
19:32:00 2000
  AfterStep-APPS-20000124-4.i386.rpm               721 Kb    Fri Feb  4
14:23:00 2000
  AnotherLevel-1.0-1.noarch.rpm                     90 Kb    Thu Sep 23
20:04:00 1999
  ElectricFence-2.1-3.i386.rpm                      21 Kb    Wed Feb  2
19:37:00 2000
....
e vorrei arrivare ad ottenere delle stringhe cosi':
AfterStep-1.7.164-2.i386
AfterStep-APPS-20000124-4.i386
AnotherLevel-1.0-1.noarch
ElectricFence-2.1-3.i386
.....
Ci sono da eliminare anche i due spazzi che stanno all'inizio della
stringa.
Ho tentato con grep ma non ci capisco un gran che.
Grazie,
--
*************************************************
* Danilo Marcucci                               *
* University of Florence                        *
* Department of Physics                          *
* Via S.Marta 3                                 *
* 50139 Florence                                *
* E-mail mailto:
marc...@dffs.unifi.it
          *
* 
http://biz-a.dffs.unifi.it/~marcucci
          *
*************************************************

ElectricFence-2.1-3.i386
Se nell'esempio di sopra le stringhe non vanno a capo 'colrm' e' la
soluzione piu' semplice. Altrimenti un'accoppiata di grep e colrm potrebbe
comunque bastare.
-- 
 +-------------------------------------------+
 |        Enrico Bodo  -   PhD student       |
 |      University of Rome "La Sapienza"     |
 |          Department of Chemistry          |
 +-------------------------------------------+

 stringa.
prova 
cut -d " " -f 3 < input.txt > output.txt 
bye Becks


Grep serve solo a trovare stringe in un file.
Direi di usare sed (man sed)
Per esempio:
sed  's/\.rpm .*$//' file.orig > file.pulito
con una seconda passata togli i due blank iniziali.
Fai tutto in una passata mettendo le due istruzioni in un 
file.
In alternativa puoi usare awk che e' piu` adatto se devi gestire
delle colonne "logiche". Ad esempio tenere la prima, la terza
e la seconda parola (blocco di caratteri separati da uno spazio).
Colrm e cut vanno bene se la parte da tagliare corrisponde
ad un numero fisso di caratteri (dal carattere n al carattere m).
ciao, andrea

stringa.
I  primi due  spazi  puoi  eliminarli con  colrm,  per  il resto  ti
conviene usare awk (man colrm e man awk per piů info).
-- 
Vanni Brutto                                      .--.
| email 
asy...@nofesso.tiscalinet.it
 |           |o_o |
| irc nick VanniB   |   ICQ 18526701 |           |:_/ |
--- rimuovi nofesso per rispondere ---          //   \ \
--------------------------------------         (|     | )
Diffidate  da  chi  dice  di  lavorare        /'\_   _/`\
molto volentieri: chi afferma ciň č un        \___)=(___/
mostro,  capace di  qualsiasi orribile   
azione.                                  
 
 
 
 
 

stringa.
man colrm
Marco
............................................
 
m.at...@flashnet.it
La prima delle Frequently Asked Questions: 
dove sono le FAQ ?      it.faq

 bye Becks
Scusa una curiosita`.
Lui vuole eliminare anche il '.rpm'. 
Tu arrivi a
AfterStep-1.7.164-2.i386.rpm
AfterStep-APPS-20000124-4.i386.rpm
lui chiedeva
AfterStep-1.7.164-2.i386
AfterStep-APPS-20000124-4.i386
Si puo' fare con cut ? come?
Lo conosco poco e nel man/info non ho trovato come salvare
tutto tranne l'ultimo campo (nel primo esempio e` il quinto,
nel secondo e` il terzo, se si usa il "." come separatore).
ciao, Andrea
NB saprei come farlo con sed o awk.

 NB saprei come farlo con sed o awk.
...e allora rendilo pubblico che sara' sicuramente
piu' bello ed elegante del mio :>
IMHO gli script semplici si affrontano con strumenti semplici
senza scomodare strumenti piu' complessi come awk o perl.
per concludere rispondendo al post originale
cat input.txt |cut -d " " -f 3|sed 's/.rpm/ /g' > output.txt
se vogliamo continuare la discussione siamo OT, spostiamoci
su comp.unix.shell
bye Becks

Ringrazio tutti quanti per aver allargato il mio orizzonte sui comandi
shell.
Per questa volta ho utilizzato solo sed in modo efficace con due passaggi.
sed 's/\.rpm*//'  file.orig > file.modif
mv file.modif file.orig
sed 's/\  //' file.orig > file.modif
Salutoni
