Linuxについて質問です。
引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つだけ表示するシェルスクリプトを作成したいです。
指定するアクセスログのファイルはいくつ指定してもよいことにします。
シェルスクリプト名をaccess2.shとして、2つのアクセスログファイルを指定してシェルスクリプトを実行したとき以下のように表示したいです。
(for文を使って)
どのように記述すればいいですか?
% bash access2.sh access_log access_log2
access_log
440 10.32.224.5
3 10.32.224.68
access_log2
801 10.32.97.63
581 10.32.224.52
341 10.32.224.5
また、access2.shを書き換えて以下のように出力できるようにもしたいです。
シェルスクリプト名をaccess3.shとして、2つのアクセスログファイルを指定してシェルスクリプトを実行したとき以下のように前回と同じで表示される。
% bash access3.sh access_log access_log2
access_log
440 10.32.224.5
3 10.32.224.68
access_log2
801 10.32.97.63
581 10.32.224.52
341 10.32.224.5
オプション -h の右に各ファイルで出力する行数を指定できるようにする。(Shiftコマンドを使用)
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ログファイルから、行ごとに必要箇所のみ抽出して、重複を勘定して、件数で並び替えて、上位数件を切りとりましょう。
cat $ログファイル | awk '{print $必要箇所}' | sort | uniq -c | sort -nr | head -n $件数
複数対象なら for で囲み繰り返し
オプション指定するなら事前に getopt で変数設定
参考)
https://search.goo.ne.jp/web.jsp?MT=bash%20scrip …
https://linuxjm.osdn.jp/html/GNU_gawk/man1/gawk. …
https://linuxjm.osdn.jp/html/GNU_textutils/man1/ …
https://linuxjm.osdn.jp/html/GNU_textutils/man1/ …
https://linuxjm.osdn.jp/html/GNU_textutils/man1/ …
https://linuxjm.osdn.jp/html/util-linux/man1/get …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) linuxについて質問です 1 2023/02/06 19:55
- UNIX・Linux Linuxについて2つ質問したいです。 ① シェルスクリプト名をawk1.shとして、指定されたデー 1 2023/02/03 03:49
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をdiff.shとして、以下のように2つのテキストフ 1 2023/02/03 20:06
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iniファイルとの比較(iniファイ...
-
RandomとBinaryモードの違い
-
特定フォルダ内のテキストファ...
-
fortranでのcsvファイルを出力...
-
VBAで新しい日付順にファイルを...
-
CFile Openで開いたファイルに...
-
unicode文字列(日本語)のファイ...
-
VBAで任意のフォルダ内のファイ...
-
複数行の文字列を変数として使...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
バッチ終了時にDOS窓を閉じるコ...
-
Excel(エクセル) VBA プロシー...
-
VBAでワークシートを引数として...
-
virualboxで仮想マシンフォルダ...
-
大量のフォルダからひとつのフ...
-
Latexで図番号だけを「図1.1」...
-
binファイルを解凍したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで新しい日付順にファイルを...
-
VBAでPowerPointからExcelにデ...
-
複数行の文字列を変数として使...
-
BCPユーティリティの使用法_...
-
特定フォルダ内のテキストファ...
-
テキストファイルを直接置換す...
-
VB6側からテキストファイルをク...
-
テキストファイルの行頭に文字...
-
Excel.VBA テキストファイルを...
-
バッチでiniファイルの編集
-
unicode文字列(日本語)のファイ...
-
access vbaでCSVファイルを文...
-
ある文字列を含む行の抽出
-
複数のCSVの指定行だけを残し、...
-
A列をテキストファイル名に、B...
-
fortranでのcsvファイルを出力...
-
ExcelVBAで以下のマクロを作成...
-
RandomとBinaryモードの違い
-
ソースコードの差分がある行番...
-
C#でのファイル編集と上書き保...
おすすめ情報