Adicionando string do arquivo .txt em um comando - para macro

1

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

    
por J.DOE 15.10.2017 / 22:55

2 respostas

2

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
    
por 15.10.2017 / 23:10
0

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.

    
por 16.10.2017 / 03:13

Tags