awk -F'|' '$1 > 20 { system("/path/to/another/script.sh "$2 }' < file.text
Isto diz ao awk para dividir a entrada em campos baseados no símbolo do pipe. Qualquer primeiro campo cujo valor seja maior que 20 aciona a chamada do sistema para ... o que você quiser. Tenha em mente que o argumento (aqui $ 2, mas poderia ser $ 0 ou qualquer outro cálculo feito no awk) é passado para o script por meio de uma chamada de shell, portanto, se esses valores puderem conter caracteres especiais do shell, cite-o cuidadosamente. Vou me referir a uma das respostas de Stéphane para um exemplo de como fazer isso:
awk 'function escape(s) {
gsub(/'\''/,"&\\&&",s)
return "'\''" s "'\''"
}
{ system("/path/to/another/script.sh" escape($2)) }'