2つの入力ファイルがあります。 1つは、ネームリスト、mm:dd形式、使用期間、および各行の他のホスト名のものです。もう一つは私が生成したもので、各行には反復しないネームリストがあります。 シェルコマンドを記述して、名前リストでファイルを繰り返し処理し、変数として保存し、名前に一致するように他のファイルをチェックしてから、各人物の合計使用時間を出力し、および情報。とにかくawkや何かを使って作業をすることができますか?シェルを使用してファイルを反復する
私は次のコマンドを考え出しました。 for $(cat namelist); do echo $ word; done これは1つのファイルを繰り返し処理するためのものです。私はすでに時間の使用量を計算するためのコードを考え出した
for word in namelist.txt:
for words in info_file.txt (field $1):
if word == words:
(calculating usage of time)
print(word, ':', usage of time)
:私はしたい何 はこのようなものです。それは今私の問題であるこの操作を行う方法です。誰でも助けてくれますか?
-----------------詳しい説明 私は、ユーザーが各行に情報を持っているホストにログインするのに費やした時間の情報を含む1つのファイルを持っています名前、日付(mm:dd:hh:mm)、初期時間、終了時間、継続時間、およびホスト名。 私が達成したいのは、毎月のファイルをタイトルとして出力することです(例:[April])。そして、ホストにログインする各ユーザーの時間を計算します。複数のログインがあるため、名前が複数回表示され、各行に他の情報が表示されます。私はこのファイルを生成しました。このファイルには、過去半年の間にログインしたすべてのユーザー名が含まれています。私は毎月の名前をタイトルとして出力ファイルを生成し、月ごとにグループ化し、ファイルの名前を、生成した名前リストと一致させて、その時間を計算し、同じ行の出力ファイルに出力しようとしています。彼らの名前が印刷されました。私はすでに計算方法を考え出しています。
sdou pts/11 Thu Dec 10 05:24 - 12:11 (2+06:46) 131.243.186.99
sdou pts/10 Thu Dec 10 05:04 - 12:11 (2+07:06) 131.243.186.99
sdou pts/9 Thu Dec 10 03:26 - 12:11 (2+08:45) 131.243.186.99
ermartin pts/0 Sat Dec 12 12:37 - 13:44 (01:06) c-24-130-14-154.hsd1.ca.comcast.net
ermartin pts/0 Sat Dec 12 12:18 - 12:31 (00:13) c-24-130-14-154.hsd1.ca.comcast.net
サンプル出力::私がこのコードを使用してこのPerlを解決
[Dec]
sdou 94.xxxhours
ermartin 1.19hours
私は質問を理解しているかどうかはわかりませんが、あなたは[join](http://linux.die.net/man/1/join)ユーティリティを探しているかもしれません。 – zwol
私は今このユーティリティを探しています。ありがとう!また、さらに詳しい説明を追加しました。 – Edccccch
は、** small **のサンプルデータ(十分なはずの3列分の音量)と、そのデータからの必要な出力を含めると、はるかに簡単に手助けすることができます。強調表示されたテキストの編集ボックスの左上にある '{}'形式のツールを使用して、code/data/output/ErrMsgsとしてフォーマットします。がんばろう。 – shellter