¿Cómo puedo reemplazar una cadena pero solo en la primera línea del archivo usando el programa "sed"?sed reemplazar cadena en una primera línea
Los comandos s/test/blah/1
y 1s/test/blah/
no parecen funcionar. ¿Hay otra manera?
¿Cómo puedo reemplazar una cadena pero solo en la primera línea del archivo usando el programa "sed"?sed reemplazar cadena en una primera línea
Los comandos s/test/blah/1
y 1s/test/blah/
no parecen funcionar. ¿Hay otra manera?
Esto lo hará:
sed -i '1s/^.*$/Newline/' textfile.txt
De no ser así sólo asegúrese de que el partido es único a la línea uno solamente:
sed -i 's/this is line one and its unique/Changed line one to this string/' filename.txt
La opción -i
escribe el cambio en el archivo en lugar de simplemente mostrar la salida a stdout.
EDIT:
Para reemplazar toda la línea, haciendo coincidir la cadena común sería:
sed -i 's/^.*COMMONSTRING$/Newline/'
Dónde ^
coincide con el inicio de la línea, $
coincide con el final de la línea y .*
partidos todo hasta COMMONSTRING
la línea es diferente cada vez con una cadena común al final, pero me diste una idea de cómo resolver esto, ¡gracias! ;) – irek
Esto podría funcionar para usted (sed de GNU):
sed -i '1!b;s/test/blah/' file
solo sustituirá la primera test
por blah
en la primera línea solamente.
O si lo que desea es cambio la primera línea:
sed -i '1c\replacement' file
¿qué pasa con '1s/test/bla /' "no funciona"? –