awkは次のエラーを出します
質問
" 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" " <*> } '