Tenho desenvolvido o Windows Software há anos. Eu estou tentando ramificar e aprender Linux. Isso realmente ajudará no meu novo trabalho.
Eu peguei o livro, "Awk and Sed" 2ª Edição. Estou executando o Ubuntu 13.04; trabalhando com a janela do terminal. Estou trabalhando no livro e encontrei um exemplo que não consigo trabalhar.
Eu tenho tentado tudo o que posso encontrar para que isso funcione. Se eu digitar o exemplo sem usar o segundo arquivo de script, ele funcionará como esperado. No entanto, quando tento trabalhar como instruído no livro (ou seja, usando um arquivo de script), recebo o seguinte: "byState: command not found". O comando que falha é:
sed -f nameState list | byState
Qual é o meu problema?
Aqui está um conjunto de dados:
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
O primeiro script é:
nameState =
s/ CA/, California/
s/ MA/, Massachusetts/
s/ OK/, Oklahoma/
s/ PA/, Pennsylvania/
s/ VA/, Virginia/
O segundo script é:
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
}'