다음 열이 포함된 파일이 있습니다.
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"