manipulação de texto sed

fundo

O trabalho diário executará algumas operações no texto linha por linha, o que foi feito escrevendo scripts antes python, mas esse método leva a escrever mais scripts, o que é inconveniente de manusear.
Este artigo apresenta principalmente sedcomandos que podem executar processamento simples em texto.
sedPara obter uma introdução completa ao comando, consulte https://www.runoob.com/linux/linux-comm-sed.html
Sintaxe:
sed [1][2][arquivo de texto]
posição 1 parâmetro, este artigo usa principalmente -ne-i

  • -n ou --quiet ou --silent exibe apenas os resultados do processamento do script.
  • -i modifica diretamente o conteúdo do arquivo lido, em vez de enviar para o terminal.
  • -e <script> Processa o arquivo de texto de entrada com o script especificado na opção.
  • -f<arquivo de script> ou --file=<arquivo de script> Processa o arquivo de texto de entrada com o arquivo de script especificado na opção.
  • -h ou --help Exibir ajuda.
  • -V ou –version Exibe informações sobre a versão.

Parâmetro da posição 2, este artigo usa principalmente dep

  • a : Adicionado recentemente, a pode ser seguido por strings, e essas strings aparecerão em uma nova linha (a próxima linha atual) ~
  • c: substituir, c pode ser seguido por strings, essas strings podem substituir as linhas entre n1 e n2!
  • d : Excluir, porque é uma exclusão, então geralmente nada é conectado após d;
  • i : insert, i pode ser seguido por strings, e essas strings aparecerão em uma nova linha (a atual linha anterior);
  • p : Imprimir, ou seja, imprimir um dado selecionado. Normalmente, p será executado com o parâmetro sed -n~
  • s: Substituição, você pode executar diretamente o trabalho de substituição! Normalmente, esta ação pode ser combinada com expressões regulares!

Selecione algumas linhas no txt e salve-as no novo txt

cat a.txt
1
2
3
4
5
6
7
8
9
10
# 选取a.txt中2-6行至b.txt中
sed -n '2,6p' a.txt > b.txt
cat a.txt
1
2
3
4
5
6
7
8
9
10
cat b.txt
2
3
4
5
6

Exclua algumas linhas no txt e salve o conteúdo restante no novo txt

Remova o parâmetro -ne psubstitua-o pord

# 删除a.txt中2-6行并将剩余内容保存至b.txt中
sed '2,6d' a.txt > b.txt
cat a.txt
1
2
3
4
5
6
7
8
9
10
cat b.txt
1
7
8
9
10

Exclua algumas linhas no txt e atualize o txt

Adicionar parâmetro-i

cat a.txt
1
2
3
4
5
6
7
8
9
10
# 删除a.txt中2-6行
sed -i '2,6d' a.txt
cat a.txt
1
7
8
9
10

referência

https://www.runoob.com/linux/linux-comm-sed.html

Acho que você gosta

Origin blog.csdn.net/qq_41994006/article/details/131399340
Recomendado
Clasificación