Acho que o que vc quer é awk 'substr($0, 18, 6) == "001121" { print }'
Abraços --- Em qua, 28/4/10, M. Rodrigo Monteiro <fale...@rodrigomonteiro.net> escreveu: De: M. Rodrigo Monteiro <fale...@rodrigomonteiro.net> Assunto: [shell-script] Pesquisa de substring Para: shell-script@yahoogrupos.com.br Data: Quarta-feira, 28 de Abril de 2010, 14:57 Boa tarde! Tenho um arquivo com várias linhas, sendo uma delas a seguinte: "201004051161717190 0112100000089341 00" O que eu quero é pegar todas as linhas que na posição 18 até a 23 (6 posições) seja os caracteres "001121". Eu tentei usando AWK, mas tem algum erro de lógica que não estou conseguindo. # echo "201004051161717190 0112100000089341 00" | awk '/substr($0, 18,6) == "001121"/ {print $0}' # Abraços, Rodrigo. -- M. Rodrigo Monteiro fale...@rodrigomont eiro.net "Free as in Freedom, not free as in free beer" "As we are liberated from our own fear, our presence automatically liberates others" Linux User # 403730 [As partes desta mensagem que não continham texto foram removidas]