3 votos

¿Cómo buscar una cadena en un archivo y coloque una cadena encima de él?

Me gustaría encontrar la Cadena __MARKER__ en someFile.txt y coloque una Cuerda por encima de éste (por ejemplo Hello World!).

¿Cómo puedo hacer que el uso de sed?

sed -i -e 's/__MARKER__/Hello world\n__MARKER__/' someFile.txt

Sin embargo, después de ejecutar el código anterior, el contenido de someFile.txt está por debajo de:

Hello worldn__MARKER__

Contenido de someFile.txt antes de la manipulación:

__MARKER__

Contenido de someFile.txt después de la manipulación:

Hello World!
__MARKER__

3voto

siva Puntos 23

s/…/…/ es una sustitución, la sustitución de la primera con el segundo . Puede utilizar una nueva línea en su cadena a insertar el texto por encima o por debajo de un salto de línea.

sed -i -e 's/__MARKER__/Hello world\
__MARKER__/' someFile.txt

Escapar de la nueva línea con una barra invertida, de lo contrario obtendrá "sin escape nueva línea dentro de patrón sustituto". Para escribir una nueva línea en la Terminal, el uso de ⌥↩︎.

Usted puede utilizar & como taquigrafía para el partido, así que no es necesario escribirla en el reemplazo.

sed -i -e 's/__MARKER__/Hello world\
&/' someFile.txt

2voto

Michael Zhou Puntos 167

Otra opción, es `` de Insertar función.

entrada:

salida:


entrada:

salida:

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X