Latest web development tutorials

Linux СЭД команда

Linux команда Daquan Linux команда Daquan

Linux СЭД команда должна использовать скрипт для обработки текстовых файлов.

СЭД сценарий может быть в соответствии с инструкциями для обработки, редактирования текстовых файлов.

Sed в основном используется для автоматического редактирования один или несколько файлов, упростить повторную операцию документа; письменные процедуры преобразования.

грамматика

sed [-hnV][-e<script>][-f<script文件>][文本文件]

Параметр Описание:

  • -e <скрипт> или --expression = <скрипт> указанный в сценарии с возможностью обрабатывать входной текстовый файл.
  • -f <скрипт файл> или --file = <скрипт файла>, чтобы указать файл сценария для обработки входного текстового файла.
  • -h или --help выводит справку.
  • -n или --quiet или --silent скрипт показывает результаты после лечения только.
  • -V Или --version показать информацию о версии.

Действие Описание:

  • а: новый, может вернуть строку, и появится эти строки (в настоящее время в следующей строке) на новой линии -
  • C: заменить, задний с может затем строка эти строки могут заменить n1, n2 линию между ними!
  • d: удалить, удалить, потому что это ах, так что, как правило, не принимают каких-либо позже d фунт;
  • я: вставка, я могу вернуть строку, и эти строки будут (присутствовать на одной линии) на новой линии;
  • р: печать, это будет выбор данных для печати. P обычно запускается с параметром SED -п ~
  • s: замещение может быть замещена работать непосредственно миль! Обычно это S действие может быть использовано с регулярными выражениями! Например 1,20s / старый / новый / г это!

примеров

После того, как четвертая строка TestFile файл добавить строку и выводит результаты на стандартный вывод, введите следующую команду в командной строке:

sed -e 4a\newLine testfile 

Первая проверка TestFile содержание следующим образом:

$ cat testfile #查看testfile 中的内容  
HELLO LINUX!  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test 

После того, как с помощью патч в следующей команде, выходные результаты являются следующие:

$ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串  
HELLO LINUX! #testfile文件原有的内容  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test  
newline 

Для добавления единицы поведения / Удалить

Содержание / и т.д. / пароль списки и номера строк, в то время как первый набор 2-5 строк удалены!

[root@www ~]# nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(后面省略).....

СЕПГ действие как "2,5D", то есть, чтобы удалить д! Так как линии 2-5, чтобы удалить его, так что никакие данные не отображаются на 2-5 линии Lo ~ Кроме того, принять к сведению, как предполагается, будет выпущен зированное -e рыбы, не -e не сделает это! Также обратите внимание, что задняя СЭД действовать, убедитесь, что '' две одиночные кавычки вокруг Oh!

Просто удалите вторую строку

nl /etc/passwd | sed '2d' 

Чтобы удалить третий до последней строки

nl /etc/passwd | sed '3,$d' 

После второго ряда (то есть, добавляется в третьем ряду) плюс "пить чай?" Слова!

[root@www ~]# nl /etc/passwd | sed '2a drink tea'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
drink tea
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....

Но если он должен находиться в передней части второго ряда

nl /etc/passwd | sed '2i drink tea' 

Если вы хотите увеличить более чем в два ряда позади второго ряда, чтобы соединить две линии, такие как "Пить чай или ....." и "пить пиво?"

[root@www ~]# nl /etc/passwd | sed '2a Drink tea or ......\
> drink beer ?'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
Drink tea or ......
drink beer ?
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....

Должна быть обратная косая черта "\", чтобы добавить новую строку между каждой строкой Oh! Так, в приведенном выше примере, мы можем найти первую строку в окончательной поверхности, там \ существует.

И заменить единицы дисплея

Содержание 2-5 строк подстановки в "Нет 2-5 числа" означает?

[root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number'
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync
.....(后面省略).....

С помощью этого метода мы можем заменить всю строку данных!

В первой строке перечислены только 5-7 / и т.д. / пароль файл в

[root@www ~]# nl /etc/passwd | sed -n '5,7p'
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
</p><p>
可以透过这个 sed 的以行为单位的显示功能, 就能够将某一个文件内的某些行号选择出来显示。
</p>
<h3>数据的搜寻并显示</h3>
<p>搜索 /etc/passwd有root关键字的行</p>
<pre>
nl /etc/passwd | sed '/root/p'
1  root:x:0:0:root:/root:/bin/bash
1  root:x:0:0:root:/root:/bin/bash
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
4  sys:x:3:3:sys:/dev:/bin/sh
5  sync:x:4:65534:sync:/bin:/bin/sync
....下面忽略 

Если корень найден, в дополнение ко всем выходным линиям, то выход будет совпадать с линией.

При использовании -п будет печатать все строки, шаблон.

nl /etc/passwd | sed -n '/root/p'
1  root:x:0:0:root:/root:/bin/bash

Поиск и удаление данных

Удаленные / и т.д. / пароль строка содержит корень всех других линейного выхода

nl /etc/passwd | sed  '/root/d'
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
....下面忽略
#第一行的匹配root已经删除了

Поиск данных и выполнения команд

Найдите подходящий шаблон восточную линию, поиск / и т.д. / пароль, найти корень соответствующей строки, за осуществление скобок в наборе команд, разделенных точкой с запятой между каждой команды здесь, чтобы колотить заменить blueshell, реэкспорта линия:

nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
1  root:x:0:0:root:/root:/bin/blueshell

Q является последний выход.

Поиск и замена данных

В дополнение к режиму обработки линии всего, СЭД может также использовать некоторые данные в единицах поиска и замены. Vi весьма существенно аналогичны SED поиску и замене! Он немного следующим образом:

sed 's/要被取代的字串/新的字串/g'

Первое наблюдение исходной информации, используйте / SBIN / Ifconfig запрос IP

[root@www ~]# /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
.....(以下省略).....

IP Эта машина 192.168.1.100.

Передняя часть IP будет удалена

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

Далее это удалить часть последующей деятельности, а именно: 192.168.1.100 Bcast: 192.168.1.255 Маска: 255.255.255.0

Часть IP, которые будут удалены позже

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'
192.168.1.100

Multi-Edit

СЭД команду для удаления / и т.д. / пароль третью строку в конец данных, а также Баш заменить blueshell

nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
1  root:x:0:0:root:/root:/bin/blueshell
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh

-е представляет редактирования многоточечного, команда удаляет сначала изменить / и т.д. / пароль к данным в конце третьей строки, вторая команда ищет Баш заменить blueshell.

Непосредственно изменять содержимое файла (опасные движения)

СЭД может непосредственно изменять содержимое файла, не используйте трубы команду или данные потоки перенаправлять! Однако, так как это действие будет непосредственно изменять исходный файл, так что вы не просто взять конфигурацию системы, чтобы проверить! Мы по-прежнему использовать загруженный файл, чтобы проверить regular_express.txt увидеть!

Используйте СЕПГ к каждому концу линии, если она находится в пределах regular_express.txt. Является ли заменить!

[root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt

Используйте СЭД непосредственно в последнюю строку в regular_express.txt "# Это тест."

[root@www ~]# sed -i '$a # This is a test' regular_express.txt

Поскольку $ представляет собой последнюю строку, и новое действие, поэтому окончательный документ, чтобы добавить "# Это тест!"

СЭД "-I", чтобы непосредственно изменять содержимое файла, что очень полезно! Например, если у вас есть миллион строк файлов, которые вы хотите добавить текстовую строку 100, на этот раз с помощью Vim может быть сумасшедшим! Поскольку файл слишком велик! Как это сделать? Сед на использовании ах! Через СЭД непосредственно изменить / заменить функцию, вы даже не использовать Vim, чтобы изменить!

Linux команда Daquan Linux команда Daquan