Respuestas:
sed -e "\$aTEXTTOEND"
Es la forma más sencilla.
$
coincide con la última línea (es una sed
dirección normal ; 4aTEXTTOEND
se insertaría después de la cuarta línea), a
es el comando anexar y TEXTTOEND
es qué agregar.
sed -e '$a\NEWLINE\\'
. Reemplace NEWLINE con una nueva línea real.
No es necesario usar sed
en ese caso. Qué tal si
echo "<?php" >> file
<php
" y " >
", y cita los contenidos seleccionados de una sola vez, por lo que probablemente realmente quiera un sed
fragmento.
sudo
, lo que hace que esta variación falle ya que echo
es un comando de shell incorporado en lugar de un archivo ejecutable que se encuentra en$PATH
echo
es un built-in, pero es también un archivo ejecutable que se encuentra en$PATH
Suponiendo que desea poner la etiqueta php final a los archivos, luego
sed -i '$s/$/\n?>/' file
debería hacer el truco
Vea su publicación original para el comando todo en uno sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Utilice el comando sed 'append (a)'. Por ejemplo, para agregar dos líneas al final del archivo:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
De una manera simple para escribir y hacer los cambios en los contenidos en una línea específica en un archivo. Si desea insertar algo en un número de línea específico, se puede usar el siguiente comando:
sed -i '2i i have started' sheikh.log
donde 2i
- línea número 2 ei significa inserción. Si tiene que insertar en la última línea, use $
en lugar de 2. He comenzado: el texto que se insertará y sheikh.log
es el nombre del archivo.
También podemos hacer los cambios en la línea usando el siguiente comando
sed -i '2c we have started' sheikh.log
i
se cambia a we
.
Supongo que cualquiera que haya buscado cómo insertar / agregar texto al principio / al final de un archivo probablemente también necesite saber cómo hacer el otro.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Esta cal
salida se canaliza a gnu- sed
(llamado gsed
en macOS instalado a través de brew.sh ) con RegEx extendido ( -E
) y 6 "scripts" aplicados ( -e
) y los saltos de línea se escapan \
para facilitar la lectura. Las secuencias de comandos 1 y 2 se utilizan 1i\
para "en la línea 1, insertar". Las secuencias de comandos 5 y 6 se usan $a\
para "en la línea <última>, anexar". Alineé verticalmente las salidas de texto para hacer que el código represente lo que se espera en el resultado. Las secuencias de comandos 3 y 4 hacen sustituciones (la última se aplica solo a "línea <última>"). El resultado es convertir la salida del comando a JSON válido.
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, esto también funciona gracias a sh. *. (no sed, pero funciona y simple)