質問

" awk:関数systimeは定義されていません。"

ただし、systimeは組み込みコマンドです

役に立ちましたか?

解決

Solarisでは、 / usr / bin / awk はデフォルトで / usr / bin / oawk へのリンクであり、 systime ビルトイン(または7th Edition AWKの他の多くの拡張機能)。 / usr / bin / awk / usr / bin / nawk に再リンクするか、 nawk を直接使用するか、GNU Awk( gawk )をインストールして使用します。

HP-UX、AIXなどの他のUnixシステムにも同様の問題がある可能性があります。 MacOS X(および推論により、BSD)は、GNU以外の非拡張バージョンの awk をインストールします(修正ありがとう、DMcKee)。 Linuxはサポートしていません。メイン/唯一の awk としてGNU Awkを使用します。もちろん、GNU Awkはこれらのシステムのいずれにも簡単にインストールできます。

他のヒント

awkの「フレーバー」の問題のようです。

GAWK(gnu awk)にはsystime()が含まれていますが、使用しているバージョンには含まれていない可能性があります...

systime呼び出しがawkスクリプト自体の時間差を追跡することを意図していない限り、awk systime()関数の欠如を回避するためのトリックは、awkコマンドラインで変数としてこのシステム変数の値を渡すことです。 。

例として、私のシステムには gawk mawk の両方がインストールされています。

echo |mawk '{print systime()}'

produces:

mawk: line 2: function systime never defined

while

echo |gawk '{print systime()}'

produces:

1252953754

タイムスタンプを取得するために私がしたことは次のとおりです

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " <*> } '
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top