PDA

View Full Version : Selezionare l'ennesima parola di una riga da shell


:.Blizzard.:
30-08-2007, 15:29
Ciao a tutti. Esiste un comando (avevo pensato a qualcosa con il grep) che data una stringa "Ciao a tutti" mi selezioni la parola ennesima (1=Ciao, 2=a, 3=tutti)?
Ho provato con l'opzione tail e head ma preferirei qualcosa di piu' immediato.

Altra cosa ... come si scrivono delle funzioni in csh? Devo gestire una rubrica con sottocartelle e mi capita sempre di dover cercare un nome all'interno di sottocartelle. Il codice l'ho fatto, ma preferirei scriverlo sottoforma di funzione,

DeusEx
30-08-2007, 16:00
Ciao a tutti. Esiste un comando (avevo pensato a qualcosa con il grep) che data una stringa "Ciao a tutti" mi selezioni la parola ennesima (1=Ciao, 2=a, 3=tutti)?
Ho provato con l'opzione tail e head ma preferirei qualcosa di piu' immediato.

cut -d' ' -f3
restituisce il terzo campo dove il separatore è lo spazio (attenzione a non mettere due spazi)
esempio: "ciao a tutti sto bene" restituisce-> tutti

cut -d: -f5
restituisce il quinto campo dove il separatore è il duepunti
esempio: "ciao:a:tutti:sto:bene" restituisce-> bene

Infine ultimo esempio su come usarlo:
echo "ciao a tutti sto bene"|cut -d' ' -f4
restituisce -> sto

vizzz
30-08-2007, 16:11
oppure

echo "uno due tre" | awk '{print $1}' => uno
echo "uno due tre" | awk '{print $2}' => due