Shell Script para mostrar todas las líneas entre los números de línea dados

En este artículo, escribiremos un script de shell para mostrar todas las líneas entre los números de línea dados en la consola.

Tenemos un nombre de archivo y una línea de inicio y final. Tenemos que escribir un script que imprimirá todas las líneas desde la línea de inicio especificada hasta la línea final del archivo.

Ejemplo:

File : a.txt
    Line 1 : Hello
    Line 2 : GeeksForGeeks
    Line 3 : Hritik
    Line 4 : Hello GFG
    Line 5 : Hello Hritik

start line, s = 2 
end line,   e = 4

Output : 
    Line 2 : GeeksForGeeks
    Line 3 : Hritik
    Line 4 : Hello GFG

Acercarse:

  • Primero, cree un archivo main.sh usando cat o cualquier comando de creación de archivos.
  • Tome la entrada del usuario con el comando de lectura
  • Ahora usaremos una herramienta sed

Usaremos la herramienta sed que se usa para enviar los contenidos a la consola. A Sed se le pasa un indicador -n para elegir qué líneas se envían a la consola.

Sintaxis: sed -n <inicio>,<fin>\p <nombre de archivo>

Ejemplo :

 file = a.txt,  s = 2 and e = 4
 sed -n 2,4\p a.txt

Después de escribir y guardar el código, use el siguiente comando para dar permiso para archivar

chmod 777 a.txt

Le dará permiso de lectura, escritura y ejecución al usuario.

A continuación se muestra la implementación:

//Shell script to display all the 
//given lines of a file

//take file name from user
//and store the input in f variable
echo "Enter the file name :"
read f

//take starting line from user 
//and store the input in s variable
echo "Enter the starting line :"
read s 

//take endinging line from user 
//and store the input in e variable
echo "Enter the ending line :"
read e

//printing the specified lines to console.
sed -n $s,$e\p $f

Producción:

Shell Script to Displays All the Lines Between the Given Line Numbers

Publicación traducida automáticamente

Artículo escrito por hritikrommie y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *