Comandos comumente usados no Linux sed

índice

1. Gramática

1.1 Opções comuns

1.2 Comandos comuns

1.3 Princípio de comando

2. Exemplos

2.1 Novo conteúdo --- Comando a

2.2 Substituir conteúdo --- comando c

2.3 Excluir conteúdo --- excluir a linha especificada

2.4 Inserir conteúdo --- comando i

2.5 Substituir conteúdo --- Comandos

Três, resumo


O comando sed do Linux usa scripts para processar arquivos de texto linha por linha. É um comando freqüentemente usado no processamento de scripts. Junto com awk e grep, é chamado de Os Três Mosqueteiros do Linux. A seguir irá descrever com exemplos.

1. Gramática

sed [opções] [comando de script] [arquivo] ...

1.1 Opções comuns

-e script, --expression = script: Processa o conteúdo de entrada com o script especificado na opção;

-f script-file, --file = script-file: Processa o conteúdo de entrada com o script-file especificado na opção;

1.2 Comandos comuns

a : Novo conteúdo, adiciona o texto do conteúdo na linha especificada;

c : substitui o conteúdo, usa o texto para substituir o conteúdo da linha especificada;

d  : apaga o conteúdo, apaga a linha especificada;

i : inserir conteúdo, inserir texto na linha especificada;

s : Substitua o conteúdo, você pode substituir o conteúdo especificado;

Exemplo: as primeiras 15 linhas do arquivo / etc / passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

1.3 Princípio de comando

O sed processa os dados de entrada linha por linha, processando uma linha de cada vez, que pode ser dividida em três etapas:

1. Armazene uma cópia da linha atualmente processada em um buffer temporário (chamado "espaço de modo");

2. Processe os dados no buffer atual por meio do comando sed;

3. Depois que os dados são processados, os dados são enviados ao terminal por padrão e, em seguida, a próxima linha é processada e todos os dados foram processados.

Os dados de origem não são modificados por padrão.

2. Exemplos

2.1 Novo conteúdo --- Comando a

 sed '4a adiciona algum texto' passwd

[root@localhost ~]# sed '4a addition some text' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
addition some text
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

No exemplo acima, 4a significa inserir conteúdo após a quarta linha, o texto a seguir é o conteúdo de entrada e passwd é o arquivo de entrada. 

2.2 Substituir conteúdo --- comando c

sed '2c adição de algum texto' passwd

[root@localhost ~]# sed '2c addition some text' passwd
root:x:0:0:root:/root:/bin/bash
addition some text
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

No exemplo acima, 2c significa substituir o conteúdo da segunda linha e o conteúdo a seguir é o conteúdo a ser substituído. 

2.3 Excluir conteúdo --- excluir a linha especificada

sed '2d' passwd

[root@localhost ~]# sed '2d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

 sed '2,5d' passwd

[root@localhost ~]# sed '2,5d' passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

 sed '/ ^ bin / d' passwd

[root@localhost ~]# sed '/^bin/d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

Nos três exemplos acima, você pode excluir especificando uma linha, ou especificando um intervalo, ou especificando conteúdo específico para exclusão. 

2.4 Inserir conteúdo --- comando i

sed '1i adiciona algum texto' passwd

[root@localhost ~]# sed '1i addition some text' passwd
addition some text
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

O conteúdo inserido é diferente do conteúdo recém-adicionado. A inserção é inserida antes da linha especificada e o conteúdo recém-adicionado é inserido após a linha especificada. 

2.5 Substituir conteúdo --- Comandos

sed 's / root / ROOT / g' passwd

[root@localhost ~]# sed 's/root/ROOT/g' passwd
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/ROOT:/sbin/nologin
[root@localhost ~]#

Nos exemplos acima, o conteúdo especificado pode ser substituído por comandos, assim como a substituição no vim. 

Três, resumo

O texto acima é apenas uma lista de usos comuns do sed na forma de exemplos, há cada vez mais conteúdo aprofundado e vou apresentá-lo quando tiver tempo.

 

Acho que você gosta

Origin blog.csdn.net/u011074149/article/details/110296542
Recomendado
Clasificación