.txt 파일의 문자열을 명령에 추가 - 매크로와 함께 사용

.txt 파일의 문자열을 명령에 추가 - 매크로와 함께 사용

여러 파일을 작업 중인데 다음 이름으로 저장됩니다.

N.YMDH.U.A.1.SAC    
N.YMDH.U.D.2.SAC  
N.YMDH.U.E.3.SAC  

잠깐만요...
제겐 .txt다음과 같은 파일도 있어요.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  

잠깐만요.... 파일 이름이 일치하면 동일한 입력 줄이 포함된 파일에 대해 명령을 실행하도록
스크립트를 작성하고 싶습니다 .$1$2


나는
#### $file을 1개씩 읽길 원하므로 temp_file.txt의 길이는 1줄에 불과합니다. 그런 다음 나중에 동일한 파일을 읽고 .txt 파일의 값을 추가할 수 있으며 그런 다음 프로세스를 반복하십시오.

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

어떤 도움이나 대안이라도 대단히 감사하겠습니다. 감사해요

답변1

YMDH_arrival_time.txt파일의 형식이 고정된 경우 <string> <number> <number>다음을 사용하면 충분합니다.grep+고양이방법:

grep -f <(cat /Documents/Scaling/YMDH/*.SAC) YMDH_arrival_time.txt > temp_file.txt

답변2

기존 방법에 적응하려면 간단히 다음을 사용하면 됩니다.

변수=$(cat temp_file.txt)

그러나 RomanPerekhrest의 방법에 대한 의견을 확인하십시오.

관련 정보