Tengo un archivo 1.txt
INTEGER-d_int ()
INTEGER-d_int ()
INTEGER-d_int ( )
INTEGER-d_intClass()
INTEGER-d_intClass new()
y quiero reemplazar la ocurrencia de d_int
con d_INT
En las líneas 1 y 5.
En mi caso, estos números de línea están en una variable.
linux
awk
text-editing
Timson
fuente
fuente
Respuestas:
Establezca las variables a y b en las líneas en las que desea realizar la sustitución y luego ejecute awk:
En lo anterior, awk verifica si estamos en el número de línea.
$a
o en el numero de linea$b
. Si es así, realiza la sustitución.Parte del truco de usar
awk
es proteger elawk
comandos desde el shell. Para hacer esto, elawk
los comandos están entre comillas simples en todas partes, excepto cuando queremos explícitamente que la shell sustituya a for$a
y$b
.$a
y$b
están cada uno en comillas doblesEn su muestra
1.txt
, lo anterior produce:Enfoque alternativo
sed
También se puede utilizar para esto. El comando sed para cambiar solo la línea 1 es1 s/d_int/d_INT/
y elsed
El comando para cambiar solo la línea 5 es5 s/d_int/d_INT/
. Por lo tanto, utilizando la sustitución de shell, unsed
Programa para hacer las sustituciones en líneas.a
yb
es:Extensión a un número arbitrario de líneas.
Supongamos que nos suministran una lista arbitraria de
lines
Sobre la cual aplicar la sustitución:fuente
fuente