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», тобто того, що отримано від менеджера процесів терміналів.
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" сподіваюся, вам це буде дуже корисно. І вони служать для використання безпосередньо з консолі або опосередковано, вставляючи їх у скрипт (автоматизоване завдання).
У наступному дописі про сценарії оболонки ми розглянемо інші команди.
Якщо ви хочете дізнатись трохи більше про команду "sed", відвідайте це посилання "Підручник та короткий посібник для Unix та Linux"Або"Основне використання»І якщо ви хочете дізнатись більше про сценарії Shell у нашому власному блозі, Ви можете поглянути на інші наші публікації на цю тему, натиснувши тут: Сценарії в FromLinux.