여러 줄에 대한 줄 위치 정보가 포함된 파일 만들기

여러 줄에 대한 줄 위치 정보가 포함된 파일 만들기

다음 열이 포함된 파일이 있습니다.

GEOM_190_190  
GEOM_190_192  
GEOM_190_194  
GEOM_190_196  
...  

길이는 약 3000줄이다.

이 이름으로 작성된 줄이 포함된 파일을 생성하는 스크립트를 작성하고 싶습니다.
내 경우에는 다음이 있습니다.

for f in extra.csv
do
 print grep -n 'f' structure.xyz >> ex.csv
done

원하는 출력:

2:GEOM_190_190  
10:GEOM_190_192  
18:GEOM_190_194

이름을 찾아야 하는 파일에는 structures.xyz약 100,000줄이 있으며 다음과 같습니다.

6  
GEOM_190_190  
C -0.8067180 0.0475439 1.5251484  
S 0.3116624 0.2691858 0.0786324  
C -1.7790900 0.0209031 -1.8054100  
S -0.5677430 -1.0588900 -0.9579280  
C 2.5277800 0.5632240 1.8126600  
S 1.2848000 1.6235700 0.9897200  
6  
GEOM_190_192  
...

감사합니다!

답변1

Grep(1)은 당신이 원하는 것을 할 수 있습니다. 한번 시도해 보세요.

grep -Fnx -f extra.csv structure.xyz 

출력을 파일로 리디렉션

grep -Fnx -f extra.csv structure.xyz > ex.csv

출력을 확인하고 동시에 파일로 리디렉션하려면 다음을 사용하세요.tee

grep -Fnx -f extra.csv structure.xyz | tee ex.csv

귀하의 질문을 올바르게 이해했다면 원하는 결과를 얻을 수 있을 것입니다.

답변2

해결되었습니다!

file="extra.csv"
while IFS= read -r line
do
  echo "$line"
grep -n "$line" structures.xyz | cut -f1 -d: >> ex.csv
done <"$file"

관련 정보