Tentando obter um exemplo do Awk and Sed book para trabalhar no Ubuntu 13.04

0

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
}'
    
por user246562 19.08.2013 / 02:23

2 respostas

0

Seu script byState pode não ser executável.

Tente:

chmod +x byState

... para tornar o script executável e, em seguida, tente sua linha de comando novamente.

Além disso, ou alternativamente, como o Unix não inclui o diretório atual no caminho por padrão, talvez seja necessário escrever:

sed -f nameState list | ./byState

... em vez de

sed -f nameState list | byState
    
por 19.08.2013 / 02:39
0

você pode tentar isto:

sed -f namestate list | sort -k 4 -t ,
    
por 19.08.2013 / 19:59