eu tenho 5.000 arquivos em uma pasta. esses arquivos são nomeados XX0000001 a XX0005000
estou tentando obter palavras de cada um desses arquivos e grep-las e a próxima linha em outro arquivo (target.txt)
tenho cerca de 30.000 palavras em alguns dos arquivos XX*
Existe alguma maneira de fazer isso ?
eu tentei :
start_number=0000001
end_number=0005000
words_file=target.txt
output_folder="output_results"
mkdir -p "$output_folder"
for ((i=start_number; i <=end_number; i++)); do
filename="XX$(printf "%07d" "$i")"
output_file="$output_folder/output_${filename}.txt"
while read -r word; do
awk -v word="$word" '{for (i=1; i<=NF; i++) if($1 ~ word) {print; next}}' "$filename" >> "$output_file"
done < "$words_file"
done
existe uma maneira mais rápida de fazer isso? meu arquivo de destino tem milhões de linhas para pesquisar; o arquivo de destino preciso tem 20 Gigabytes e 106441678 linhas
por exemplo: o arquivo XX0000001 se parece com:
Big1 Big5 Big7 Big10 Big11 (e muito mais palavras para isso; alguns arquivos XX podem até ter até 30 mil palavras)
O arquivo Target.txt se parece com:
#Grande1
Este_é_um_arquivo_contendo_xxxx
#Grande2
Este_é_um_arquivo_contendo_xxxx
#Grande3
Este_é_um_arquivo_contendo_xxxx
#Big4
Este_é_um_arquivo_contendo_xxxx
#Big5
Este_é_um_arquivo_contendo_xxxx
#Big6
Este_é_um_arquivo_contendo_xxxx
#Big7
Este_é_um_arquivo_contendo_xxxx
#Big8
Este_é_um_arquivo_contendo_xxxx
#Grande9
Este_é_um_arquivo_contendo_xxxx
#Grande10
Este_é_um_arquivo_contendo_xxxx
#Big11
Este_é_um_arquivo_contendo_xxxx
#Big12
Este_é_um_arquivo_contendo_xxxx