Uso simples de sed
e
O editor de streaming sed pode realizar adição, exclusão
, modificação
e verificação não interativa de documentos , processamento linha por linha 1, pré-instrução | instrução de instrução de
endereço de opção de sed 2, instrução de instrução de opção de sed é processada Opção de documento
-n protege a saída padrão -i gravação No arquivo -r suporta
comando de regularidade estendida p saída d delete s substituição
1. Saída
sed -n '1p' user //输出第1行
sed -n '2p' user //输出第2行
sed -n '3p' user //输出第3行
sed -n '2,4p' user //输出第2~4行
sed -n '2,+1p' user //输出第2行以及后面1行
sed -n '2p;4p' user //输出第2行,第4行
sed -n '/^root/p' user //在sed中使用正则表达式输出以root开头的行
sed -n '$p' user //查看最后一行
sed -n '1!p' user //查看除了第1行以外的行, !代表取反
2. Veja o número da linha
sed -n '=' user //查看所有行号
sed -n '$=' user //查看最后一行的行号,相当于查看文档
总共有几行
3. Excluir
sed '1d' user //删第1行
sed 'd' user //删所有
sed '3d' user //删第3行
sed '2,5d' user //删2~5行
sed '4,+2d' user //删4行以及后面2行
sed '1d;3d' user //删第1行,第3行
sed '$d' user //删除最后一行
4. Substitua
vim test.txt //准备素材,写入下列内容
2017 2011 2018
2017 2017 2024
2017 2017 2017
sed 's/2017/8888/' test.txt //替换所有行的第1个2017为8888
sed '1s/2017/8888/' test.txt //替换第1行的第1个2017
sed '2s/2017/8888/' test.txt //替换第2行
sed '1,2s/2017/8888/' test.txt //替换1~2行
sed 's/2017/8888/2' test.txt //替换所有行的第2个2017
sed 's/2017/8888/3' test.txt //替换所有行的第3个2017
sed '/2011/s/2017/8888/' test.txt //替换有2011的行的第1个2017
sed 's/2017/8888/g' test.txt //替换所有行的所有个
sed '3s/2017/8888/;3s/2017/8888/' test.txt //替换第3行的第1个和第2个2017
Nota: Você pode alterar o símbolo do intervalo de substituição.
Por exemplo: sed's! / Bin / bash! / Sbin / sh! '/ Etc / passwd
Substitua / bin / bash em / etc / passwd por / sbin / sh
5. Aplicação avançada de substituição de s no Sed
1. Exclua o segundo e último caractere de cada linha do arquivo
sed 's/.//2;s/.$//' test.txt
2. Exclua todos os números do arquivo
sed -i 's/[0-9]//g' test.txt
3. Troque o primeiro e o último caracteres de cada linha no arquivo
echo abcdefghi > abc
sed -r 's/^(.)(.*)(.)$/\3\2\1/' abc
4. Adicione parênteses para cada letra maiúscula no arquivo
echo qwdqDGjdksdhTTh > test
sed -r 's/([A-Z])/(\1)/g' test
6. Anexar abaixo da linha, adicionar na linha, substituir toda a linha
sed 'a 666' user //在所有行下追加666
sed '1a 666' user //第1行下追加666
sed 'i 666' user //所有行上添加666
sed '3i 666' user //第3行上添加666
sed '2a 666' user //第2行下追加666
sed 'c 666' user //所有行替换成666
sed '/root/c 666' user //找到有root的行替换成666