Gostaria de filtrar o resultado de um comando grep, por exemplo:
myRepo/path/to/my/file.php:123: error_log(' - myError');
Se eu fizer o seguinte, funciona.
echo " meuRepo/caminho/para/meu/arquivo.php:123: error_log(' - meuErro');" | awk -F': ' '{print $1}'
Mas quando é o resultado de um comando grep, ele gera a linha inteira, por quê?
grep -rn "meuErro" | awk -F': ' '{print $1}'
Eu tenho CentOS 6 com Awk 3.1.7, bash 4.1.2
Seu delimitador awk é um: e um espaço, mas eu acho que seu código está usando tabulação para recuo (e, portanto, não corresponde apenas a um espaço).
Você pode tentar alterar seu grep para o seguinte (o que faz com que o awk corresponda a : e ao caractere de tabulação).
Isso funciona para mim usando bash 4.3.46 e awk 4.1.3 no slackware linux.
Tente isto: