次の列を含むファイルがあります。
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"