Diretório de artigos
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 sed
comandos que podem executar processamento simples em texto.
sed
Para 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 -n
e-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 d
ep
- 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 -n
e p
substitua-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