Попытка заставить пример из книги Awk и Sed работать на Ubuntu 13.04

Попытка заставить пример из книги Awk и Sed работать на Ubuntu 13.04

Я разрабатываю ПО для Windows уже много лет. Я пытаюсь расширить сферу деятельности и изучить Linux. Это действительно поможет мне в моей новой работе.

Я взял книгу "Awk and Sed" 2-е издание. Я работаю в Ubuntu 13.04; работаю с окном терминала. Я работаю над книгой и наткнулся на пример, который не могу заставить работать.

Я перепробовал все, что только мог найти, чтобы это заработало. Если я ввожу пример без использования второго файла скрипта, он работает так, как и ожидалось. Однако, когда я пытаюсь работать так, как указано в книге (т. е. с использованием файла скрипта), я получаю следующее: "byState: command not found". Команда, которая не работает, это:

sed -f nameState list | byState

В чем моя проблема?

Вот набор данных: Список =

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

Первый скрипт: nameState =

s/ CA/, California/
s/ MA/, Massachusetts/
s/ OK/, Oklahoma/
s/ PA/, Pennsylvania/
s/ VA/, Virginia/

Второй скрипт: 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
}'

решение1

Ваш скрипт byStateможет быть неисполнимым.

Пытаться:

chmod +x byState

... чтобы сделать скрипт исполняемым, попробуйте снова ввести команду.

Дополнительно или в качестве альтернативы, поскольку Unix по умолчанию не включает текущий каталог в путь, вам может потребоваться написать:

sed -f nameState list | ./byState

... вместо

sed -f nameState list | byState

решение2

вы можете попробовать это:

sed -f namestate list | sort -k 4 -t ,

Связанный контент