He estado desarrollando software de Windows durante años. Estoy tratando de ramificarme y aprender Linux. Realmente me ayudará con mi nuevo trabajo.
Recogí el libro "Awk and Sed" 2nd Edition. Estoy ejecutando Ubuntu 13.04; trabajando con la ventana de terminal. Estoy trabajando en el libro y me he encontrado con un ejemplo que no puedo poner a trabajar.
He estado intentando todo lo que puedo encontrar para que esto funcione. Si escribo el ejemplo sin usar el segundo archivo de script, funciona como se esperaba. Sin embargo, cuando intento trabajar como se indica en el libro (es decir, usando un archivo de script), obtengo lo siguiente: "byState: comando no encontrado". El comando que falla es:
sed -f nameState list | byState
Cual es mi problema
Aquí hay un conjunto de datos: Lista =
John Daggett, 341 King Road, Plymouth MA
Alice Ford, 22 East Broadway, Richmond VA
Orville Thomas, 11345 Oak Bridge Road, Tulsa OK
Terry Kalkas, 402 Lans Road, Beaver Falls PA
Eric Adams, 20 Post Road, Sudbury MA
Hubert Sims, 328A Brook Road, Roanoke VA
Amy Wilde, 334 Bayshore Pkwy, Mountain View CA
Sal Carpenter, 73 6th Street, Boston MA
El primer script es: nameState =
s/ CA/, California/
s/ MA/, Massachusetts/
s/ OK/, Oklahoma/
s/ PA/, Pennsylvania/
s/ VA/, Virginia/
El segundo script es: byState =
#! /bin/sh
awk -F, '{
print $4 ", " $0
}' $* |
sort |
awk -F, '
$1 == LastState {
print "\t" $2
}
$1 != LastState {
LastState = $1
print $1
print "\t" $2
}'