2013-03-28 2 views
1

Я пытаюсь автоматизировать проверку отсутствующих маршрутов в Play! веб приложение. Таблица маршрутизации находится в файл в следующем формате:Найдите отсутствующие URL-маршруты с помощью командной строки

GET /home   Home.index 
GET /shop   Shop.index 

Я уже успел использовать свою команду линии фу ползти через мой код и сделать список всех действий, которые должны присутствовать в файл. Этот список в следующем формате:

Home.index 
Shop.index 
Contact.index 
About.index 

Теперь я хотел бы перенаправить вывод этого текста в другую команду, которая проверяет, если каждая строка присутствует в файле маршрута. Я не уверен, как действовать дальше.

Результат должен быть что-то вроде этого:

Contact.index 
About.index 

ли кто-то есть полезный совет о том, как я могу это сделать?

ответ

2

попробовать эту строку:

awk 'NR==FNR{a[$NF];next}!($0 in a)' routes.txt list.txt 

EDIT

если вы хотите выше линии, чтобы принять list из стандартного ввода:

cat list.txt|awk 'NR==FNR{a[$NF];next}!($0 in a)' routes.txt - 

заменить cat list.txt с волшебной командой

+0

Ницца, это работает, когда выводится список в файл. Но возможно ли также передать содержимое list.txt в эту команду? Что-то вроде awk '...' routes.txt '<другая команда для создания списка>' или awk '...' routes.txt | <другая команда>? – Arjen

+0

@Arjen см. Редактировать в ответ – Kent

+0

Удивительный, работает как шарм! – Arjen

Смежные вопросы