O comando sed substitui a string especificada no arquivo

Índice

1. Crie um arquivo txt

2. Substitua o primeiro huawei em cada linha por apple, e após o terceiro "/", se nenhum parâmetro for adicionado, apenas o primeiro será substituído

3. Substitua todos os xiaomi em cada linha por iphone, após o terceiro "/", adicione o parâmetro g para substituir todos

4. Substitua o segundo redmi em cada linha por batata, após o terceiro "/", adicione o parâmetro 2 para substituir o segundo

 5. Substitua o segundo mate pelo último mate em cada linha com pico, após o terceiro "/", adicione o parâmetro 2g para substituir o segundo pelo último

6. Substitua os dois primeiros KFCs em cada linha por CPU

7. Substitua o primeiro HBW na segunda linha por MDL

 8. Substitua HBW da segunda linha até a última linha por MDL (o símbolo $ significa a última linha, se você escrever um número, significa a linha numérica)

9. Adicione o frango no início da primeira linha (o símbolo ^ representa o início da linha)

 10. Adicione beautiful ao final da primeira linha (o símbolo $ representa o final da linha)

11. Adicione frango ao início de cada linha e crie um arquivo de backup ao mesmo tempo (arquivos de backup que não foram gravados em frango)

 12. Várias ações de substituição podem ser executadas juntas, separando-as com ponto-e-vírgula;

Treze, se a string a ser substituída contiver aspas simples ', use aspas duplas para cercar os parâmetros

 14. A própria barra/ é usada como um separador na instrução sed, mas se a string a ser substituída também contiver uma barra/, então você pode usar o sinal de libra # como separador (você também pode usar um ponto de interrogação?)


1. Crie um arquivo txt

vi huawei.txt

2. Substitua o primeiro huawei em cada linha por apple, e após o terceiro "/", se nenhum parâmetro for adicionado, apenas o primeiro será substituído

sed -i "s/huawei/apple/" huawei.txt

 

Perceba o efeito:

 

3. Substitua todos os xiaomi em cada linha por iphone, após o terceiro "/", adicione o parâmetro g para substituir todos

sed -i "s/xiaomi/iphone/g" huawei.txt

 

Perceba o efeito:

 

4. Substitua o segundo redmi em cada linha por batata, após o terceiro "/", adicione o parâmetro 2 para substituir o segundo

sed -i "s/redmi/batata/2"

 

 5. Substitua o segundo mate pelo último mate em cada linha com pico, após o terceiro "/", adicione o parâmetro 2g para substituir o segundo pelo último

sed -i "s/mate/pico/2g" 

 

6. Substitua os dois primeiros KFCs em cada linha por CPU

sed -i "s/KFC/CPU/"

sed -i "s/KFC/CPU/"

 

Substitua a primeira primeiro. Neste momento, a segunda string original torna-se a primeira na ordem, então substitua-a novamente

(O escopo das operações acima é para cada linha. Em seguida, filtraremos com precisão a linha específica ou as primeiras linhas que precisam ser modificadas. Para conveniência da demonstração, alteramos apenas a primeira string da linha específica. Isso é, não adicione "g")

7. Substitua o primeiro HBW na segunda linha por MDL

sed -i "2s/HBW/MDL/" HBW.txt 

 8. Substitua HBW da segunda linha até a última linha por MDL (o símbolo $ significa a última linha, se você escrever um número, significa a linha numérica)

sed -i '2,$s/HBW/MDL/' HBW.txt 

Observe que quando uma vírgula "," é usada em uma declaração, aspas simples devem ser usadas fora da declaração

(Os itens acima são todos substitutos para a própria string específica e, em seguida, modificamos o início ou o fim da linha).

9. Adicione o frango no início da primeira linha (o símbolo ^ representa o início da linha)

sed -i '1s/^/chicken/' ktv.txt

 

 10. Adicione beautiful ao final da primeira linha (o símbolo $ representa o final da linha)

sed -i '1s/$/linda/' ktv.txt 

 

(Depois de usar o comando sed -i para modificar diretamente o arquivo, o que devo fazer se me arrepender? Você pode adicionar o parâmetro -i.bak e um backup será criado durante a modificação)

11. Adicione frango ao início de cada linha e crie um arquivo de backup ao mesmo tempo (arquivos de backup que não foram gravados em frango)

sed -i.bak 's/^/chicken/' aaa.txt 

 

 12. Várias ações de substituição podem ser executadas juntas, separando-as com ponto-e-vírgula;

Ao mesmo tempo, adicione o topo ao início de todas as linhas e adicione o fundo ao final de todas as linhas (observe que o parâmetro -i não é chamado e o resultado da modificação não será gravado no arquivo

sed 's/^/top/;s/$/bottom/' aaa.txt

Treze, se a string a ser substituída contiver aspas simples ', use aspas duplas para cercar os parâmetros

 Substitua n'a em cada linha por na (observe que o parâmetro -i não é usado por conveniência e o resultado da modificação não será gravado no arquivo)

sed "s/n'a/na/" aaa.txt

 14. A própria barra/ é usada como um separador na instrução sed, mas se a string a ser substituída também contiver uma barra/, então você pode usar o sinal de libra # como separador (você também pode usar um ponto de interrogação?)

Substitua n/a por na, (o parâmetro -i não é chamado, o resultado da modificação não será gravado no arquivo)

sed "s#n/a#na#" aaa.txt

sed "s?n/a?na?" aaa.txt

Compreensão: A conveniência do sed é que você pode localizar e editar rapidamente uma determinada palavra-chave no conteúdo do documento (você conhece a string), mas é difícil usar o sed diretamente para resolver a string desconhecida. Por exemplo, no livro de senhas, desejo substituir todas as senhas, mas todas são strings aleatórias. Se o conteúdo do arquivo for "senha: 12345678; senha: 22345678;...", só consigo localizar "senha :" e ";", como continuar substituindo o não fixo "12345678" ainda precisa ser estudado

Acho que você gosta

Origin blog.csdn.net/LiZhen314/article/details/131104197
Recomendado
Clasificación