Sed: Учене на скриптове на черупки с помощта на командата Sed Terminal
Командата "sed" в безплатните операционни системи от типа GNU / Linux това е много гъвкава команда, тъй като от своя страна Счита се за текстов редактор, ориентиран към „поток“ вместо към „интерактивен“ като типични, тъй като приема файл или стандартен вход като вход, след това обработва всеки ред и резултатът се изпраща към стандартен изход. Това ще рече, SED (Stream Editor) ни позволява да модифицираме съдържанието на различните редове на файл въз основа на поредица от команди или команден файл.
Като цяло командата «sed» се използва като филтър, тъй като чете всеки ред от въвеждането на данни и след това изпълнява заявените действия, които обикновено се четат, извличат, модифицират и показват или записват. Въпреки че силата му е такава, че освен това ни позволява по удобен начин да изтриваме редове, записи или да заместваме символни низове в редовете на файл.
Въведение в командата "sed"
В други предишни публикации в DesdeLinux говорихме и показахме примери за използването на тази команда, като: Как да изтрия конкретни редове от файл ... y С терминал: Използване на регулярни изрази II: Замествания, така че този път директно ще видим малко по-напреднали и също толкова практически примери, които го използват.
По принцип командата «sed» има следния синтаксис:
sed comandos_sed archivo
където "Command_sed" съответства на една или повече спецификации за това какво да се прави с редовете, от които се чете "архив".
По-широкото използване ни оставя следния синтаксис:
sed [-ns] '[direccion] instruccion argumentos'
когато:

Практически примери
Списък на файлове / папки в път
Полезен команден ред, който може да се използва за изброяване на съдържанието на посочен X път и след това откриване / броене / филтриране на търсен елемент и посочване на последващо действие, което трябва да се извърши.
ls -l | awk '{ print $NF }' | sed 1d
Пример:

Този друг вариант с помощта на командата "sed" е много полезен:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Създайте числова последователност
Показвайте на екрана или запазете във файл цифрова последователност (или някакъв друг вход), създадена, но по хоризонтален (линеен), а не вертикален начин, който по-късно може да бъде прочетен за други процеси.
seq 100|tr '\n' ' '|sed 's, $,\n,g'

Същият пример може да се направи чрез комбиниране на командата «жажда " с "Printf" както е показано по-долу:
printf '%s ' {1..100}|sed 's/ $/\n/'

Изтрийте файлове с изключения
Пресяване на пътя на файловата система в търсене на модели на файлове за изключване и след това изтриване на останалото съдържание. Много полезно за прецизно и внимателно почистване.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Създайте виртуален MAC адрес
Тази стъпка може да бъде полезна за задачи за компютърна сигурност или защита при разглеждане на опасни сайтове или извършване на хакерски задачи.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Същият ефект може да бъде постигнат чрез използване на командата "sed" заедно с други команди, както е показано по-долу:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
Пример:

Временно променете терминалния ред
Това може да ни помогне временно да вмъкнем параметри в нашата подкана, които могат да ни бъдат полезни, докато извършваме специална дейност. В този пример ще променим само начина, по който се показва подканата.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Управлявайте изхода на командата "ps"
Много практична командна заповед, за да се позволи форматирането на изхода на командата «ps», тоест това, което се получава от Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Пример:

Това може да се приложи за процеси според процента на консумираната памет:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Тези примери за командни редове, използващи командата "sed", надявам се да ви е много полезен. И те служат за използване директно от конзолата или индиректно чрез вмъкването им в скрипт (автоматизирана задача).
В следващия пост на Shell Scripting ще разгледаме други команди.
Ако искате да научите малко повече за командата "sed", посетете тази връзка "Урок и кратко ръководство за Unix и Linux"Или"Основна употреба»И ако искате да научите повече за Shell Scripting в нашия собствен блог, можете да разгледате и другите ни публикации по темата, като кликнете тук: Скриптове в FromLinux.