複数行の行位置情報を含むファイルの作成

複数行の行位置情報を含むファイルの作成

次の列を含むファイルがあります。

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"

関連情報