GNU/Linux >> Tutoriales Linux >  >> Linux

script bash agrega texto a la primera línea de un archivo

Este sed el comando agregará 123 hasta el final de la primera línea de su archivo.

sed ' 1 s/.*/&123/' yourfile.txt

también

sed '1 s/$/ 123/' yourfile.txt

Para agregar el resultado al mismo archivo, debe usar -i cambiar:

sed -i ' 1 s/.*/&123/' yourfile.txt

Esta es una solución para agregar "ok" en la primera línea en /etc/passwd , creo que puede usar esto en su secuencia de comandos con un poco de 'ajuste':

$ awk 'NR==1{printf "%s %s\n", $0, "ok"}' /etc/passwd
root:x:0:0:root:/root:/bin/bash ok

Para editar un archivo, puede usar ed , el editor estándar:

line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
    ed -s "$file" < <(printf '%s\n' 1 a "$line" . 1,2j w q)
fi

ed Comandos:

  • 1 :ir a la línea 1
  • a :agregar (esto se insertará después de la línea actual)
  • Estamos en modo de inserción y estamos insertando la expansión de $line
  • . :detener el modo de inserción
  • 1,2j unir las líneas 1 y 2
  • w :escribir
  • q :salir

Linux
  1. Elimine los primeros cinco caracteres en cualquier línea de un archivo de texto en Linux con sed

  2. ¿Cómo se reemplaza el texto similar a sed con python?

  3. Elimine los espacios en blanco en cada comienzo de línea del archivo, usando bash

  4. Obtenga una línea específica del archivo de texto usando solo un script de shell

  5. Agregue una línea al archivo /etc/hosts con script de shell

Cómo leer un archivo línea por línea en Bash

Bash:Agregar al archivo

Sustitución de cadena en Bash

35 ejemplos de secuencias de comandos Bash

Bash Script para Center Fortune/texto de Stdin/pipe?

sed:¿cómo reemplazar la línea si se encuentra o agregar al final del archivo si no se encuentra?