Разность вывод двух команд 'awk'

Выполненный reset. Из страницы справочника:

При вызове, как сброшено, tset приготовленные наборы и режимы эха, выключении cbreak и режимов без предварительной обработки, включении перевода новой строки и сбросе любых специальных символов сброса к их значениям по умолчанию прежде, чем сделать терминальную инициализацию, описанную выше. Это полезно после того, как программа умрет, оставляя терминал в аварийном состоянии.

4
22.12.2011, 01:52
1 ответ

diff ожидает названия двух файлов, таким образом, необходимо поместить эти два вывода на два файла, затем сравнить их:

awk '{print $3}' f1.txt | sort -u > out1
awk '{print $2}' f2.txt | sort -u > out2
diff out1 out2

или, использование ksh93, bash или zsh, можно использовать замену процесса:

diff <(awk '{print $3}' f1.txt | sort -u) <(awk '{print $2}' f2.txt | sort -u)
18
27.01.2020, 20:45
  • 1
    Ничего себе, вторые работы решения как очарование (к сожалению, не может использовать сначала, так как я не могу создать файл на том поле). BTW, может Вы бросать некоторые указатели/ссылки на какой черная магия это <() конструкция и чем это называют? –  sasuke 21.12.2011, 20:17
  • 2
  • 3
    @sasuke, Вы не должны помещать outX в тот же dir, Вы могли поместить их в ~ / или/tmp/. У Вас должно быть некоторое место на машине, Вы могли создать tmp файлы даже на "производственном поле". –  Johan 22.12.2011, 08:23
  • 4
    @Johan: Спасибо за комментарий. К сожалению, "производственное" поле является небольшим borked когда дело доходит до конфигурации, таким образом, все разработчики имеют права строго только для чтения (да, даже корневые каталоги, печальные но верные). –  sasuke 23.12.2011, 20:50

Теги

Похожие вопросы