Se o arquivo YMDH_arrival_time.txt
tiver o formato fixo <string> <number> <number>
, bastará usar a seguinte abordagem grep + cat :
grep -f <(cat /Documents/Scaling/YMDH/*.SAC) YMDH_arrival_time.txt > temp_file.txt
Estou processando vários arquivos salvos como
N.YMDH.U.A.1.SAC
N.YMDH.U.D.2.SAC
N.YMDH.U.E.3.SAC
e assim por diante ...
Eu também tenho um arquivo .txt
que se parece com o seguinte: YMDH_arrival_time.txt
N.YMDH.U.A.1.SAC 5.000 7.000
N.YMDH.U.D.2.SAC 7.321 4.313
N.YMDH.U.E.3.SAC 3.243 7.876
e assim por diante ...
Eu quero escrever um script assim, se o nome do arquivo corresponder a $1
, então, faça um comando no arquivo que envolve a entrada de $2
da mesma linha.
O que eu tenho tentado #### Eu quero que o arquivo $ seja lido 1 por 1, assim o temp_file.txt tem apenas 1 linha de comprimento, então o mesmo arquivo é lido mais tarde e o valor do arquivo .txt pode ser adicionado e o processo repetido ect.
for file in /Documents/Scaling/YMDH/*.SAC do;
awk '{$1 ~ /$file/ {print $1 $2 $3}' /Documents/Scaling/YMDH_arrival_time.txt > temp_file.txt
#### in hope to find the row which matches and print that row into a new txt file
SAC <<EOF
r $file
CHNDHR T (I want to put the value of $2 of temp_file.txt here)
w $file.done
quit
EOF
done
qualquer ajuda será apreciada ou um método alternativo. Obrigado
Se o arquivo YMDH_arrival_time.txt
tiver o formato fixo <string> <number> <number>
, bastará usar a seguinte abordagem grep + cat :
grep -f <(cat /Documents/Scaling/YMDH/*.SAC) YMDH_arrival_time.txt > temp_file.txt
Para se adequar à sua abordagem existente, você usaria apenas
variable = $ (cat temp_file.txt)
No entanto, verifique os comentários sobre a abordagem de RomanPerekhrest.
Tags awk