Сравнение двух файлов и результатов печати с новым текстовым файлом

Я хочу сравнить список пакетов на компьютере с авторизованным списком, который у меня есть. Как мне это сделать? Будет ли следующая работа?

cd /home touch authorizedlist.txt (list contents) >> authorizedllist.txt touch currentlist.txt dpkg -l | cut -d ' ' -f3 | less >> currentlist.txt touch difflist.txt diff authorizedlist.txt currentlist.txt >> difflist.txt

Есть ли способ создать новый текстовый файл и добавить к нему содержимое в одной команде вместо того, чтобы делать прикосновение, а затем вставлять текст? Кроме того, существует ли способ распечатать только то, что не требуется из текущего списка, а не то, что отсутствует в нем?

0
задан 21 January 2018 в 21:24

3 ответа

Да.

touch устанавливает временную метку изменения данного файла в «now». Если данный файл еще не существует, он создается. Это обычный способ создания пустых файлов. Перенаправление >> добавляет вывод в данный файл. Подобно touch, он создает файл, если он еще не существует. Но имейте в виду, он добавляет данные в существующий файл. Перенаправление > перезаписывает данный файл с выходом предыдущей команды. Если файл еще не существует, он создается. Если он уже существует, он усекается (то есть: очищается или очищается), а затем вывод записывается на него. less - это так называемый пейджер. То есть: он предназначен для интерактивного использования, поэтому вы можете просматривать большие файлы и использовать пространство и b (за пределами других), чтобы переходить вперед и назад в файл или вывод команды. Если вы все равно перенаправляете вывод команды в файл, вы можете (и должны) опустить вызов less.

Объединить вместе:

cd /home
(list contents) > authorizedlist.txt
dpkg -l | cut -d ' ' -f3 > currentlist.txt
diff authorizedlist.txt currentlist.txt > difflist.txt
2
ответ дан 22 May 2018 в 16:22
  • 1
    Спасибо за объяснение; это было ясно и очень полезно! – suomynonA 21 January 2018 в 21:46
  • 2
    Как насчет последнего вопроса, который я задал в своем посте? – suomynonA 21 January 2018 в 21:53
  • 3
    @suomynonA (На самом деле это отдельный вопрос, который должен быть опубликован как таковой.) Я не знаю, что вы имеете в виду. Все строки в currentlist, которые не находятся в authorizedlist или просто наоборот или что-то еще? – PerlDuck 21 January 2018 в 22:01
  • 4
    да, все строки в текущем списке не в авторизованном списке – suomynonA 21 January 2018 в 22:10
  • 5
    Думаю, я это понимаю. Unneeded = строки, которые находятся в текущем списке, а не в авторизованном списке. – Terrance 21 January 2018 в 22:30

Да.

touch устанавливает временную метку изменения данного файла в «now». Если данный файл еще не существует, он создается. Это обычный способ создания пустых файлов. Перенаправление >> добавляет вывод в данный файл. Подобно touch, он создает файл, если он еще не существует. Но имейте в виду, он добавляет данные в существующий файл. Перенаправление > перезаписывает данный файл с выходом предыдущей команды. Если файл еще не существует, он создается. Если он уже существует, он усекается (то есть: очищается или очищается), а затем вывод записывается на него. less - это так называемый пейджер. То есть: он предназначен для интерактивного использования, поэтому вы можете просматривать большие файлы и использовать пространство и b (за пределами других), чтобы переходить вперед и назад в файл или вывод команды. Если вы все равно перенаправляете вывод команды в файл, вы можете (и должны) опустить вызов less.

Объединить вместе:

cd /home (list contents) > authorizedlist.txt dpkg -l | cut -d ' ' -f3 > currentlist.txt diff authorizedlist.txt currentlist.txt > difflist.txt
2
ответ дан 17 July 2018 в 22:31

Да.

touch устанавливает временную метку изменения данного файла в «now». Если данный файл еще не существует, он создается. Это обычный способ создания пустых файлов. Перенаправление >> добавляет вывод в данный файл. Подобно touch, он создает файл, если он еще не существует. Но имейте в виду, он добавляет данные в существующий файл. Перенаправление > перезаписывает данный файл с выходом предыдущей команды. Если файл еще не существует, он создается. Если он уже существует, он усекается (то есть: очищается или очищается), а затем вывод записывается на него. less - это так называемый пейджер. То есть: он предназначен для интерактивного использования, поэтому вы можете просматривать большие файлы и использовать пространство и b (за пределами других), чтобы переходить вперед и назад в файл или вывод команды. Если вы все равно перенаправляете вывод команды в файл, вы можете (и должны) опустить вызов less.

Объединить вместе:

cd /home (list contents) > authorizedlist.txt dpkg -l | cut -d ' ' -f3 > currentlist.txt diff authorizedlist.txt currentlist.txt > difflist.txt
2
ответ дан 23 July 2018 в 23:10

Другие вопросы по тегам:

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