User Tools

Site Tools


потоковый_редактор_sed

This is an old revision of the document!


Потоковый редактор sed

Шаблон

sed команды_редактирования [имя_файла]

$ sed '' /etc/passwd
$ sed -n '' /etc/passwd

Команда редактирования -- p -- печать текста

$ sed -n '1p' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm Exp $

$ sed -n '20,$p' /etc/passwd
pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin

Команда редактирования -- a -- вставка после и -- i -- перед строкой

$ who | sed '/root/a\
SUPER USER
'
root             ttyv1    Oct 17 16:15 
SUPER USER
user             ttyp0    Oct 17 17:40 (195.19.32.14)

Команда редактирования -- c -- замена строк

$ cat /etc/defaults/rc.conf | sed '/^#/c\
COMMENT
'

Команда редактирования -- d -- удаление текста

$ sed '2,$d' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm Exp $

$ sed -e '/^$/d' -e '/^#/d' /etc/defaults/rc.conf

Команда редактирования -- s -- замена элементов текста

$ sed 's/root/SUPERUSER/' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm Exp $
#
SUPERUSER:*:0:0:Charlie &:/root:/bin/csh
toor:*:0:0:Bourne-again Superuser:/SUPERUSER:
...

$ sed 's/root/SUPERUSER/g' /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.39 2004/08/01 21:33:47 markm Exp $
#
SUPERUSER:*:0:0:Charlie &:/SUPERUSER:/bin/csh
toor:*:0:0:Bourne-again Superuser:/SUPERUSER:

$ sed -E '/(^$)|(^#)/d' /etc/defaults/rc.conf

$ sed -E 's/(^u[0123456789]+)/\1user/' /etc/passwd
или
$ sed -E 's/(^u[[:digit:]]+)/\1user/' /etc/passwd

Аргумент -- i – непосредственное редактирование файла

$ cp /etc/passwd ~
$ cd
$ sed –i .bak -E 's/(r.*t)/\1SUPERUSER/g' passwd
потоковый_редактор_sed.1235988211.txt.gz · Last modified: 2013/05/22 13:50 (external edit)