список тегов, используемых в канале:
—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция
—---------
Linux
—---------
#ssh
#bash
#awk
#tmux
#console
#utils
#troubleshooting
#nmap
—----------
DevOps
—----------
#jenkins
#ansible
#git
kubernetes
—------------------
Virtualization
—------------------
#vmware
vagrant
—------------------
Networking
—---------------—
#networking
—---------
InfoSec
—---------
#vulns
—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP
—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty
UPD 28/12/17
—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция
—---------
Linux
—---------
#ssh
#bash
#awk
#tmux
#console
#utils
#troubleshooting
#nmap
—----------
DevOps
—----------
#jenkins
#ansible
#git
kubernetes
—------------------
Virtualization
—------------------
#vmware
vagrant
—------------------
Networking
—---------------—
#networking
—---------
InfoSec
—---------
#vulns
—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP
—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty
UPD 28/12/17
Список тегов, используемых в канале:
—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция
#junior
—---------
Linux
—---------
#ssh
#bash
#bash_tips_and_tricks
#awk
#tmux
#console
#utils
#troubleshooting
#nmap
#apt
#bind
#sound
#power_management
—----------
DevOps
—----------
#jenkins
#ansible
#git
#kubernetes
#deploy
#ceph
#docker
#puppet
—------------------
Virtualization
—------------------
#vmware
vagrant
—------------------
Networking
—---------------—
#networking
#proxy
#socks
—---------
InfoSec
—---------
#vulns
#security
#ctf
—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP
—------------
Datacenters
—---------—
#ovh
#hetzner
—-------
Other
—-------
#android
#jira
—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty
Updated: 29.05.18
—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция
#junior
—---------
Linux
—---------
#ssh
#bash
#bash_tips_and_tricks
#awk
#tmux
#console
#utils
#troubleshooting
#nmap
#apt
#bind
#sound
#power_management
—----------
DevOps
—----------
#jenkins
#ansible
#git
#kubernetes
#deploy
#ceph
#docker
#puppet
—------------------
Virtualization
—------------------
#vmware
vagrant
—------------------
Networking
—---------------—
#networking
#proxy
#socks
—---------
InfoSec
—---------
#vulns
#security
#ctf
—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP
—------------
Datacenters
—---------—
#ovh
#hetzner
—-------
Other
—-------
#android
#jira
—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty
Updated: 29.05.18
парсим вывод и приводим в нужный вид
Тут в чате прислали ссылку на пример того как человек парсил вывод сайта, чтобы выцепить видео:
#awk #sed #grep
Тут в чате прислали ссылку на пример того как человек парсил вывод сайта, чтобы выцепить видео:
$ curl -s "https://www.docker.com/dockercon/2019-videos/" | grep -i -A3 "2019-videos?" | grep -v "\-\-" | grep -v "img id" | sed 's/<a href="/https:\/\/www.docker.com/g' | sed 's/">//g' | sed 's/<p>//g' | sed 's/<\/p>//g' | sed 'n;G;'кмк это немножечко не практично. И поэтому в рамках самообучения я решил поднатаскать свои навыки в awk. В итоге получился такой вариант:
curl -s "https://www.docker.com/dockercon/2019-videos/" | \З.Ы. не являюсь гуру авк, парсинга и прочего. Если у вас есть мнение что мое решение не совсем верно или можно сделать красивее\лаконичнее, прошу вас писать замечения в ЛС (с пруфами) и я обязательно опубликую ваш вариант.
awk 'match($0, /dockercon\/2019-videos\?watch=.*[a-zA-Z0-9]/) \
{ print "https://www.docker.com/"substr( $0, RSTART, RLENGTH ) } \
{ getline; if ( match($0, /<p>(.*)<\/p>/, m) ){print m[1]"\n"}}'
#awk #sed #grep
awk regexp delimeter
Все вы наверняка знаете про то что можно указать awk разделитель, который будет использоваться для разбиения на столбцы, но оказывается можно не просто указывать разделитель-символ, но вообще писать регулярное выражение. Например задача по выявлению времени rtt из ping вместо использования всяких cut\sed\egrep превращается в такую лаконичную форму:
З.Ы. да, это можно решить 100500 способами с использованием 100500 других тулзов. задача была рассказать про регулярки в делиметре и привести простой пример.
#awk #notes
Все вы наверняка знаете про то что можно указать awk разделитель, который будет использоваться для разбиения на столбцы, но оказывается можно не просто указывать разделитель-символ, но вообще писать регулярное выражение. Например задача по выявлению времени rtt из ping вместо использования всяких cut\sed\egrep превращается в такую лаконичную форму:
ping -c 1 8.8.8.8 | awk -F" |=" '/time=/{print $10}'
З.Ы. да, это можно решить 100500 способами с использованием 100500 других тулзов. задача была рассказать про регулярки в делиметре и привести простой пример.
#awk #notes