出力を から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
を使用する場合printf()
(これはおそらく必要な出力を取得するのに正しい方法です)、C の場合と同様に、引数と同じ数の変換指定子を使用する必要があります。
awk '{printf "%.4d%.2d%.2d\n", $1, $2, $3}'
フォーマットの後のコンマに注意してください。それは非常に重要です。サンプル コードではそれが省略されているため、指定$1
された書式文字列を書式文字列として連結し、2 つの引数を指定します。printf()
自動的に追加されない ( とは異なり)改行も必要になるでしょうprint
。%d
overの選択%i
は任意です。それらは同じです。の使用は%.2d
完全に恣意的なものではありません。と同じ効果が得られ%2.2d
ますが、使用する文字数が少なくなります。
この回答は、あなたがやろうとしていることがより大きなスケールで賢明であるかどうかに対処しようとするものではありません。実行する必要があると仮定して、どのように実行できるか/実行する必要があるかを単に示しています。のフィールド間にスペースがあるという前提もあります2012 11 25
。