2

に問題がありawkます。基本的に私がやろうとしているのは、ファイル内のこの特定の文字列を検索することです。そして、その行の 3 番目の要素を出力します。

これが私がしたことです:

awk -F' / ' '$1=="$log"{print $3}' schedlist

何らかの理由で機能しませんが、これを行うと:

awk -F' / ' '$1=="20121213-20:58:53"{print $3}' schedlist

コードは機能します。しかし、ユーザーに名前を入力させる必要がありますlog

4

2 に答える 2

3

次のよう-vに、シェル変数を に渡すオプションを使用する必要があります。awk

awk -v tstamp="$log" -F' / ' '$1==tstamp{print $3}' schedlist

( awk 組み込み関数と衝突するため、変数名をtstamp(コメントに記載されているように)に更新しました。)loglog

于 2012-12-13T17:28:56.607 に答える
2

いくつかのオプションがあります。変数を使用します (割り当てと一緒に、-vまたは単に割り当てとして使用しますが、「log」という名前を付けることはできません。これは awk 関数であるためです):

awk -F' / ' '$1 == s {print $3}' s="$log" schedlist

スクリプトを別の方法で引用します。

awk -F' / ' '$1 == "'"$log"'" { print $3}' schedlist
于 2012-12-13T18:22:56.730 に答える