GNU/Linux >> Tutoriales Linux >  >> Linux

¿Insertar una variable definida por el usuario en un alias en Bash?

Me gustaría agregar un alias a un comando en mi .bashrc archivo, como en este ejemplo:

alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"

Pero me gustaría especificar el nrow variable cuando ejecuto el comando desde la terminal. Como ejemplo:

take_row 1 –> el script toma la primera fila

take_row 20 –> el script ocupa la fila 20

¿Cómo escribo dentro del comando algo como <command> | <read nrow user input> , etc?

Respuesta aceptada:

Use una función en lugar de un alias, en cuyo caso puede hacer referencia a parámetros posicionales como $1 , etc.

take_row () {
    local nrow="$1"
    cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}

En este caso particular, también puede abordar el uso inútil de cat:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}

… y hazlo aún más corto eliminando el código innecesario:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}

Linux
  1. Bash Dynamic (variable) ¿Nombres de variables?

  2. ¿Por qué es legal establecer una variable antes de un comando en Bash?

  3. ¿Usando una referencia a una variable de cadena Bash en Sed?

  4. Comprobar si existe una variable en una lista en Bash

  5. pasar grep a una variable en bash

Variable de exportación de bash

Bash printf - Cómo imprimir una variable en Bash

Cómo crear alias de Bash

Bash Scripting - Variables explicadas con ejemplos

Interfaces de usuario con diálogo. Script Bash (IV)

Cómo establecer la variable de entorno en Bash