Red de conocimiento informático - Conocimiento informático - Ayuda a escribir un script de shell en Linux (use el comando sed para procesar el archivo hosts)

Ayuda a escribir un script de shell en Linux (use el comando sed para procesar el archivo hosts)

#El siguiente es el contenido del script. Tenga en cuenta que modificar el archivo /etc/hosts requiere permisos de superusuario. En otras palabras, necesita sudo para ejecutar este script.

#!/bin/bash

DELIM="'"

N=2

echo "Por favor, envíeme el archivo ."

#read storepath1

storepath1="/etc/hosts"

storepath1=`echo "$storepath1" | cut -d "$DELIM" -f $N`

#Esto es fácil de entender:

#1 Reemplaza las líneas que no comienzan con # con aquellas que comienzan con !!@

# 2. Elimine el número # en la línea que comienza con #

#3. Reemplace !!@ con el número #

#sed -i -r -e '/^. # /! s|^|!!@|' -e 's|^#||' -e 's|^!!@|#|' "$storepath1"

#Esto es más conciso

#Si la línea comienza con #, elimine #.

# Si la operación de eliminación se acaba de realizar, realice la operación t, salte al final del script sed y finalice la operación.

# Si no se ha realizado ninguna operación de eliminación en este momento, continúe ejecutando s|^|#| y agregue un signo # al principio.

#sed -i -r -e 's|^#||;t;s|^|#|' "$storepath1"

#Esto coincide con 3 dígitos o más líneas que comienzan con un punto

#El principio es el mismo que el anterior, excepto que en lugar de procesar cada línea, procesa líneas que comienzan con un número de tres dígitos más un punto.

sed -i -r -e 's|^#([0-9]{3}\.)|\1|;t;s|^([0-9]{3} \.)|#\1|' "$rutatienda1"