função awk com um parâmetro numérico para a coluna que você deseja imprimir

2

Eu quero usar o meu atalho awk como uma função, para que eu possa passar o número da coluna que então me imprime a saída. Meus aliases são:

alias A="| awk '{print \}'
alias G="| grep -i'

Instância de digitação:

ps -ef | grep mysql | awk 'print $2'

Eu quero poder digitar isso:

ps -ef G mysql A 2

Alguma sugestão?

    
por DannyRe 27.07.2012 / 18:52

1 resposta

3

Eu não acho que seja possível. Basicamente, os aliases não podem receber argumentos ( $1 ) e as funções não podem fazer a expansão da macro ( | ).

As opções mais próximas em que consigo pensar:

em bash ou zsh

C() { col=$1; shift; eval "awkcmd='{ print \$$col }'"; echo "$awkcmd"; "$@" | awk "$awkcmd"; }

C 2 ps -ef G mysql

em zsh

alias -g F="| tr -s '[[:space:]]' | cut -d ' ' -f"

ps -ef G mysql F 2
    
por 27.07.2012 / 19:10