Вам нужен канал обоим grep
вызовы:
nmap ... | grep report | grep open
Или, так как Вы отметили с awk
, просто информативно:
nmap ... | awk '/report/ && /open/'
И sed
:
nmap ... | sed '/report/!d;/open/!d'
Иногда я должен найти последний раз загруженный файл в своем каталоге Downloads, но не могу знать точное имя файла. Вот то, как я делаю это.
ls -rt ~/Downloads
ls -t
перечисляет файлы ко времени не, называют, при этом новое отображено сначала. Так как мой каталог Downloads содержит столько файлов, которые я не хочу прокручивать к верхней части списка для наблюдения нового. ls -rt
инвертирует порядок списка, отображая новый файл в нижней части списка.
Оттуда можно сделать то, в чем Вы нуждаетесь довольно легко. Например:
unzip $(ls -rt ~/Downloads | tail -n1)
или
mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*
Ваш исходный вопрос мог быть сделан как это:
7z l $(ls -rt ~/Downloads | tail -n1)
Я понимаю, что это не придерживается метода заполнения клавишей Tab, но это может подойти для Ваших потребностей.
([1181018]reverse[1181019] здесь, чтобы увидеть новейшие файлы в конце списка, потому что верхняя часть может быть не видна на экране). [1180695]
Я сделаю следующие шаги для этого
1. Сначала я найду файлы и их временные метки. 2. Отсортирую их в обратном порядке 3. Возьму N лучших 4. Получить имена файлов 5. Запилить или сделать то, что вам нравится
И сценарий выглядит так (может быть сложным)
find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l
В bash вы можете получить что-то близкое, используя, например,
7z l ~/Downloads/
Alt+n
Где bind
сопоставил Alt+n с функцией, которая перезаписывает переменную READLINE_LINE
.
Для аппроксимации завершения табуляции я делаю это с аргументом -парсинга -perl -кладжа и fzf
для представления меню.
https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash
rl
сls -lhtc "$@" | head -n $N
сделайте к этому. – Vi. 19.09.2013, 20:35