2017-06-05 11 views
-1

私は擬似化学反応を研究しており、原子の動きを追跡することを望んでいます。この動きは、タイムスタンプの異なる大きなファイルに書き込まれました。私は各タイムステップでアトムID(各タイムステップでユニーク)を取得したいと思います。しかし、grepを使用しているときに、出力の先頭にインデックス番号を追加するにはどうすればよいですか?

の出力はtimestepと関連づけにくい行番号を持っています。

:O 6557 0.000000 0.000000
5189:O 6557 0.000000 0.000000

21491:鉄、私は前にインデックス番号(NOT行番号)を追加することができますどのように6557 0.000000 0.000000

grepコマンドを使用した場合の出力以下のように:

1 O 6557 0.000000 0.000000

2 O 6557 0.000000 0.000000

3 Feが6557 0.000000 0.000000

感謝します。

答えて

0

GNU catできる:

grep " 6557 " filename | cat -n 

代わりにあなたはPerlで手動で行うことができます。

perl -ne 'print ++$c, " ", $_ if/6557 /' filename 
+0

ありがとうございました。どちらもうまくいく。 – Leon

0

私はawkの解決策を示唆している:あなたはまだgrepコマンドに対処したい場合は

awk '$0~/ 6557 /{ print ++c, $0}' filename 

を - (ファイルの数ラインに使用される)GNU nlコマンドとそれを組み合わせる:

grep -i ' 6557 ' filename | nl -n ln 
+0

はありがとうございました。彼らは働いている。 – Leon

関連する問題