0

出力を から2012 1 5に変更する20120105には、 から変更するだけで十分ですか?

ls $run |xargs sed q |awk '{print $1,$2,$3} ' >> stin-2

ls $run |xargs sed q |awk '{printf "%2.2i" $1,$2,$3} ' >> stin-2
4

1 に答える 1

2

を使用する場合printf()(これはおそらく必要な出力を取得するのに正しい方法です)、C の場合と同様に、引数と同じ数の変換指定子を使用する必要があります。

awk '{printf "%.4d%.2d%.2d\n", $1, $2, $3}'

フォーマットの後のコンマに注意してください。それは非常に重要です。サンプル コードではそれが省略されているため、指定$1された書式文字列を書式文字列として連結し、2 つの引数を指定します。printf()自動的に追加されない ( とは異なり)改行も必要になるでしょうprint%doverの選択%iは任意です。それらは同じです。の使用は%.2d完全に恣意的なものではありません。と同じ効果が得られ%2.2dますが、使用する文字数が少なくなります。

この回答は、あなたがやろうとしていることがより大きなスケールで賢明であるかどうかに対処しようとするものではありません。実行する必要があると仮定して、どのように実行できるか/実行する必要があるかを単に示しています。のフィールド間にスペースがあるという前提もあります2012 11 25

于 2012-08-12T06:18:31.660 に答える