Eu não faço isso com frequência, e quando eu faço é sempre sensível ao tempo. Eu tenho o script sed abaixo que extrai um padrão numérico de mais de um milhão de arquivos. Eu preciso lançar isso para o AWK, então quando o padrão correspondente é encontrado, ele imprime o nome do arquivo onde foi encontrado. O número da linha seria ótimo, mas não seria ganancioso.
saída desejada
Nome do arquivo1 000-323423-33
Nome do arquivo2 000-323423-33
Nome do arquivo3 000-323423-33
Já tentei vários métodos mas nada funcionou, alguém com mais experiência pode dar uma orientação adequada? Agradeço antecipadamente!
#!/bin/sh
#shopt -s nullglob
FILES=/mnt/c/temp/1/*.txt
for f in $FILES
do
echo "Processing $f"
sed -nr \
-e '/[0-9]{3}-[0-9]{6}-[0-9]{2}/{
s/.*([0-9]{3}\-[0-9]{6}\-[0-9]{2}).*/\1/
G
p
}' $f
done