Você quer algo assim?
function get_column
{
awk -v val=$1 '{print $val}' list.txt
}
Acima está retornando a correspondência de coluna com $1
passando para a função. se você realmente precisar imprimir a correspondência de linha com o número da linha em $1
da função, use em seguida.
function get_row
{
awk -v val=$1 'NR==val{print ; exit}' list.txt
}
Ou deixe o shell avaliar e definir o valor val
e imprimi-lo em awk
da seguinte forma:
function get_column
{
awk '{print $val}' val=$1 list.txt
}
function get_row
{
awk 'NR==val{print ; exit}' val=$1 list.txt
}
Aqui você está passando val
somente com números e se val
continha barra invertida caractere de escape você encontrará um problema que awk
faz C escapar do processamento da sequência em valores passados via -v val=
e uma variável shell com val="\n"
mudará para valor com \n
por awk .