El comando sed reemplaza la cadena especificada en el archivo

Tabla de contenido

1. Crea un archivo txt

2. Reemplace el primer huawei en cada línea con apple, y después del tercer "/", si no se agregan parámetros, solo se reemplazará el primero

3. Reemplace todo xiaomi en cada línea con iphone, después del tercer "/", agregue el parámetro g para reemplazar todo

4. Reemplace el segundo redmi en cada línea con papa, después del tercer "/", agregue el parámetro 2 para reemplazar el segundo

 5. Reemplace el segundo mate al último mate en cada línea con pico, después del tercero "/", agregue el parámetro 2g para reemplazar el segundo al último

6. Reemplace los dos primeros KFC en cada línea con CPU

7. Reemplace el primer HBW en la segunda línea con MDL

 8. Reemplace HBW desde la segunda línea hasta la última línea con MDL (el símbolo $ significa la última línea, si escribe un número, significa la línea numérica)

9. Agregue pollo al comienzo de la primera línea (el símbolo ^ representa el comienzo de la línea)

 10. Agregue hermoso al final de la primera línea (el símbolo $ representa el final de la línea)

11. Agregue pollo al comienzo de cada línea y cree un archivo de copia de seguridad al mismo tiempo (archivos de copia de seguridad que no se han escrito en pollo)

 12. Se pueden ejecutar varias acciones de reemplazo juntas separándolas con punto y coma;

Trece, si la cadena que se va a reemplazar contiene comillas simples ', use comillas dobles para rodear los parámetros

 14. La barra inclinada/ en sí misma se usa como separador en la instrucción sed, pero si la cadena que se va a reemplazar también contiene una barra inclinada/, entonces puede usar el signo de libra # como separador (¿también puede usar un signo de interrogación?)


1. Crea un archivo txt

vi huawei.txt

2. Reemplace el primer huawei en cada línea con apple, y después del tercer "/", si no se agregan parámetros, solo se reemplazará el primero

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

 

Darse cuenta del efecto:

 

3. Reemplace todo xiaomi en cada línea con iphone, después del tercer "/", agregue el parámetro g para reemplazar todo

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

 

Darse cuenta del efecto:

 

4. Reemplace el segundo redmi en cada línea con papa, después del tercer "/", agregue el parámetro 2 para reemplazar el segundo

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

 

 5. Reemplace el segundo mate al último mate en cada línea con pico, después del tercero "/", agregue el parámetro 2g para reemplazar el segundo al último

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

 

6. Reemplace los dos primeros KFC en cada línea con CPU

sed -i "s/KFC/CPU/"

sed -i "s/KFC/CPU/"

 

Reemplace el primero primero. En este momento, la segunda cadena original se convierte en la primera en orden, así que reemplácela nuevamente

(El alcance de las operaciones anteriores es para cada línea. A continuación, filtramos con precisión la línea específica o el número de líneas que deben modificarse. Para facilitar la demostración, solo cambiamos la primera cadena de la línea específica. Eso es , sin agregar "g")

7. Reemplace el primer HBW en la segunda línea con MDL

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

 8. Reemplace HBW desde la segunda línea hasta la última línea con MDL (el símbolo $ significa la última línea, si escribe un número, significa la línea numérica)

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

Tenga en cuenta que cuando se usa una coma "," en una declaración, las comillas simples deben usarse fuera de la declaración

(Todos los anteriores son reemplazos de la cadena específica en sí, y luego modificamos el principio o el final de la línea).

9. Agregue pollo al comienzo de la primera línea (el símbolo ^ representa el comienzo de la línea)

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

 

 10. Agregue hermoso al final de la primera línea (el símbolo $ representa el final de la línea)

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

 

(Después de usar el comando sed -i para modificar directamente el archivo, ¿qué debo hacer si me arrepiento? Puede agregar el parámetro -i.bak y se creará una copia de seguridad durante la modificación)

11. Agregue pollo al comienzo de cada línea y cree un archivo de copia de seguridad al mismo tiempo (archivos de copia de seguridad que no se han escrito en pollo)

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

 

 12. Se pueden ejecutar varias acciones de reemplazo juntas separándolas con punto y coma;

Al mismo tiempo, agregue top al comienzo de todas las líneas y agregue bottom al final de todas las líneas (tenga en cuenta que el parámetro -i no se llama y el resultado de la modificación no se escribirá en el archivo

sed 's/^/superior/;s/$/inferior/' aaa.txt

Trece, si la cadena que se va a reemplazar contiene comillas simples ', use comillas dobles para rodear los parámetros

 Reemplace n'a en cada línea con na, (tenga en cuenta que el parámetro -i no se usa por conveniencia, y el resultado de la modificación no se escribirá en el archivo)

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

 14. La barra inclinada/ en sí misma se usa como separador en la instrucción sed, pero si la cadena que se va a reemplazar también contiene una barra inclinada/, entonces puede usar el signo de libra # como separador (¿también puede usar un signo de interrogación?)

Reemplace n/a con na, (el parámetro -i no se llama, el resultado de la modificación no se escribirá en el archivo)

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

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

Comprensión: la conveniencia de sed es que puede ubicar y editar rápidamente una determinada palabra clave en el contenido del documento (conoce la cadena), pero es difícil usar directamente sed para resolver la cadena desconocida. Por ejemplo, en el libro de contraseñas, quiero reemplazar todas las contraseñas, pero todas son cadenas aleatorias. Si el contenido del archivo es "contraseña: 12345678; contraseña: 22345678;...", entonces solo puedo ubicar "contraseña :" y "; ", aún debe estudiarse cómo continuar reemplazando el "12345678" no fijo

Supongo que te gusta

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