Дата: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
Количество просмотров: 5758
Комментарии к статье:
Добавить комментарий