Немного о SED

Автор: Admin

Дата:2013-04-08

SED

Команда S(substitute) - подстановка нового текста вместо существующего

echo "HI BOB" | sed 's/BOB/Mary/'

# HI Mary


1) Редактирование файла

sed 's/BOB/Mary/' files1
# HI Mary

2) Несколько замен

sed 's/BOB/Mary/; s/HI/Bye/' files1
# Bye Mary

3) С такими параметрами изменения не затрагивают сам файл, а выводятся только на экран.

Можно воспользоваться выводом в файл.
sed 's/BOB/Mary/; s/HI/Bye/' files1 > files3

# vi files3
# Bye Mary

4) Для изменения большого количества параметром, лучше всего указать эти параметры в отдельном файле и выполнить при помощи команды:

sed -f script files

То что меняет:

# vi files
BIND is alternative software for translating domain names into IP addresses.

На что меняем:

# vi script
s/BIND/Bind/
s/software/ Open Source Software/
# sed -f script files2

Bind is alternative  Open Source Software for translating domain names into IP addresses.

Флаги подстановки в программе S

# sed 's/Masha/MASHA/2' sed2 - vменяет второе вхождение
Masha Petya Vasya
Nina Masha Dima Sveta
MASHA

sed -n - Подавляет вывод из редактора

Флаг "p" - выводит только те сткроки которые были изменены

Флаг "g" - заменит все вхождения

Символы заменить можно при помощи восклицательного знака
sed 's!/bin/bash!/bin/sh!' passw1

Работа со строками в SED

Перед командой "s" задаетя числовой номер строки или диапазон:

sed '3s/Masha/MASHA' sed3 - изменится только 3 строка

sed '1,3s/Masha/MASHA' sed3 - изменятся только 1 и 3 строка

sed '2,$s/Masha/MASHA' sed3 - изменения произойдут от второй строки и до конца

Изменение по имени

# vi worker
name    condition
----    ---------
anna    working
pentya  fired
vasya   working

Для изменения статуса только сотрудника необходимо выполнить:

# sed '/vasya/s/working/fired/' worker
name    condition
----    ---------
anna    working
pentya  fired
vasya   fired

Вывод строки

# sed -n '6p' var - Выводит только 6 строку
#sed '=' var - вывод номера строки

Удаление

Удаление в sed выполняется при помощи флага "d"
sed '2d' sed2
sed '2,4d
' sed2

Добавления в sed

-i (insert) - вставляется перед
-a (append) - вставляется после

# sed '4i\dima    working' worker - добавляется пред 4 строкой
# sed '4a\dima    working' worker - добавляется после 4 строки

Изменения в строки

c(change)
sed '4c\Dima    Fired' worker

Количество просмотров: 5677

Комментарии к статье:

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2024