• 締切済み

awkでの出力項目の追加方法について

はじめまして。 急遽UNIXサーバをメンテすることになったUNIX素人です。時間に迫られており勉強する時間も今はとれず、皆様のお知恵をお借りしたく質問させていただきます。 現在、コマンド出力結果などの各行の先頭に、日時分秒を追加してテキストファイル出力するシェルスクリプトの作成をしています。 awk を使用して実現したいと思っていますが、具体的な方法についてアドバイスをいただけたらと思っています。 なお、コマンド出力結果をawkへ引き渡す方法は、スクリプト内で直接渡しても、一旦ファイル出力したものを読み込む形のどちらでもよいと思っています。 例 ・ps の出力結果 PID PPID PGID WINPID TTY UID STIME COMMAND 1072 1 1072 1072 con 1005 10:41:29 /usr/bin/bash 1052 1072 1052 544 con 1005 10:50:14 /usr/bin/ps ・日時分秒 を追加した結果 DATE PID PPID PGID WINPID TTY UID STIME COMMAND 200705111735 1072 1 1072 1072 con 1005 10:41:29 /usr/bin/bash 200705111735 1052 1072 1052 544 con 1005 10:50:14 /usr/bin/ps 大変初歩的な質問で申しわけありませんが、なにどぞご教授お願いします。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

ps | awk -vD=`date '+%Y%m%d%H%M%S'` -vH='DATE' '{printf "%14s%s\n", (NR==1 ? H : D), $0}' POSIX準拠のシステムであれば多分これで行けるかと。

babe1967
質問者

補足

sakusaker7様、回答1、2ともにありがとうございます。 現在、出張先につき、回答遅れまして申し訳ありませんでした。 対象OSは、HP-UX 11と、Soralis10です。 日時の部分は、スクリプト起動時のものでよく、回答2のようにdate コマンドにて取得したもので問題ありません。 現在、実機を使用できる環境にないため、14日にご教示いただいた方法を試行してみます。 結果はその後、ご報告させていただきます。 >× 教授 >○ 教示 のご指摘、ありがとうございます、自分自身ほとんど意識せず 使用していました。今後気をつけたいと思います。

すると、全ての回答が全文表示されます。
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

UNIXといわれますが、具体的にはなんでしょうか? LinuxとかFreeBSDとかはたまたAIXかHP-UX、Solaris etc... とりあえず、gawkを除いてはawk自身で日付情報を得ることはできません。 Linux のいずれかのディストリか、FreeBSDであればシステムで使用している awkはgawkなのでその点問題ありませんが、ほかのOSの場合はそうはいきません。 具体的なOS名をお願いします。 > ・日時分秒 を追加した結果 > DATE PID PPID PGID WINPID TTY UID STIME COMMAND > 200705111735 1072 1 1072 1072 con 1005 10:41:29 /usr/bin/bash > 200705111735 1052 1072 1052 544 con 1005 10:50:14 /usr/bin/ps 2007... の部分はawkスクリプトを起動した日時+時刻でいいですか? なお今回の質問のような場合、 × 教授 ○ 教示 です。

すると、全ての回答が全文表示されます。

関連するQ&A