Eu tenho um arquivo de texto (digit.txt) que consiste em uma coluna que inclui três números de dígitos cujo intervalo é 001-...365. No mesmo diretório, tenho arquivos de texto de dados. O nome de arquivo desses arquivos de dados da seguinte forma, jplg3240.18i
. Apenas a jplg
parte é constante. Preciso solicitar que os arquivos de jplg
dados escrevam os números no arquivo digit.txt usando os primeiros 5 a 7 caracteres dos nomes dos arquivos e armazená-los em outro arquivo de texto. Por exemplo:
digit.txt=
005
301
350
005
010
data files= jplg001.18i.txt, jplg005.18i.txt, jplg301.18i.txt, jplg350.18i.txt,jplg010.18i.txt, jplg365.18i.txt
O arquivo de saída deve ser este:
output=
jplg005.18i
jplg301.18i
jplg350.18i
jplg005.18i
jplg010.18i
aqui o ciclo while pode ser bom para atingir seu objetivo:
O código deve ser executado no caminho onde os arquivos estão e fornecer a você, como resultado, uma lista de arquivos no arquivo datafiles.txt com o nome completo do arquivo, se corresponder à lista no arquivo digit.txt
Se sua pergunta é concatenar os dados dos arquivos listados em digit.txt, a resposta é:
Em câmera lenta:
ls jplg*
: lista um superconjunto de todos os arquivos que você deseja (você pode tornar isso mais restritivo, se necessário)grep -f digit.txt
mantém apenas as linhas que contêm um númerodigit.txt
(isso assume que os três dígitos não aparecem em nenhum outro lugar nos nomes dos arquivos)xargs cat
: aplica -secat
a todos os arquivos listados na saída do grep