Меню сайта
① Главная
② Обо мне
③ Статьи
④ Дневник
⑤ Картинки
⑥ Файлы
⑦ Форум
⑧ Гостевая книга

Категории раздела
Куклы и игрушки [56]
Личное [109]
Музыка [19]
Общее [255]
Японский язык [12]
ZX Spectrum [34]
Субмарины [92]
Настольные игры [34]
Го (碁) [11]
Книги [10]
Япония [26]
Таро [4]
Запертый шкаф [16]
CSA (КША) [14]
GNU/Linux [53]
Ubuntu [103]
Manjaro Linux [24]
Python [1]

Помощь сайту
Если сайт Вам понравился, поддержите на развитие!

Подробнее...


 
Дневник (2018 » Июль » 5 в 22:27)
GNU/Linux Прикладные примеры использования SED и AWK

sed
awk
sed (Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
awk  (инициалы трёх разработчиков языка) — C-подобный скриптовый язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам (регулярным выражениям).

Поиск и замена

Простая замена стандартного вывода:
echo "This is a test" | sed 's/test/another test/'
Простая замена old на new  в test.txt изменения выводятся на экран без сохранения в файле.
sed 's/old/new/' test.txt

Заменить в файле параметр param= с любым значением на param=false.
sed -i 's/^param=.*/param=false/' file.txt
Ключ -i указывает, что замена будет записана в файл. Если указать через точку расширение: -i.orig  то в файл file.txt.orig будет записан оригинал до изменений.
sed -i.orig 's/^param=.*/param=false/' file.txt

Прочие приёмы работы

Вывод строк, содержащих слово root (аналог grep)
sed -n /root/p /etc/passwd

Просто вывод например 4х первых строк файла. (аналог grep)
sed 4q /etc/fstab

Вывод конфига без комментариев, используя регулярные выражения:
sed /^#/d /etc/fstab
Несколько строк сценария в одной команде sed. Для этого перед каждым сценарием указывается ключ -e. Например вывод конфига без комментариев и без пустых строк.
sed -e /^#/d -e '/^$/d' /etc/fstab 
Наоборот, раскомментировать строки с 8258550B5854FF7B и сохранить изменения в файле:
sed -i.orig /8258550B5854FF7B/s/^#// /etc/fstab 
Команды, если их много, можно  указывать не в самой строке, а загружать из файла. Например содержимое файла list:
s/^#/d -e
s'/^$/d'
Тогда команда обработки файла списком инструкций из list бует такова:
sed -f list /etc/fstab 


AWK

Подсчитать количество строк в файле (аналог wc -l /etc/passwd ):
awk 'END{print NR}' /etc/passwd
Вывод из файла строки содержащей слово root (аналог grep)
awk /^root/{print} /etc/passwd
Вывод первых 5 строк файла (аналог grep)
awk '{print}NR==5{exit}' /etc/passwd
Взять из файла с первой по восьмую строки и из них вывести только первые пять
sed -n '1,8p;5q' /etc/passwd

Вывод только 9го столбца из табличного вывода ls -l /
ls -l /|awk '{print $9}'




Использованные ссылки:
  1. Sed и awk — Виктор Ашик https://youtu.be/81r8sD6yDJo
  2. https://www.opennet.ru/openforum/vsluhforumID9/9099.html
  3. https://habr.com/company/ruvds/blog/327530/
  4. https://ru.wikipedia.org/wiki/Sed
  5. https://ru.wikipedia.org/wiki/Awk

Категория: GNU/Linux | Просмотров: 18 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Календарь
«  Июль 2018  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Поиск

Облако тэгов
JGSDF игрушки брюнетки кладбище сайты Ярость Дракулы древний египет девушки кошки cthulhu вампиры Kitsune Ужас Аркхема Инструмент комиксы Lovecraft Готика Submarine submarine rc toy hosting Игротека Ужас Аркхэма book uboat мобильная связь ГО Edgar Poe SWF Mansions of Madness Nightmares персоны linux-hardware Python Мастер-рукожоп

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2018
Лучший браузер!
Блокировка рекламы