2017-06-29 7 views
1

日付(MM/DD/YYYY)を示すテキストファイルが列にあります。 column4の日付形式をDD-Mmm-YYYYに変更したいと思います。 私は日付-d 08/31/2017 "+%d-%b-%Y"コマンドを使用すると完全に動作し、日付形式を31-Aug-2017に変換します。しかし、私はbashのスクリプトでawkを使用して同じコマンドを実行しているとき、私のために働いていない。bashスクリプトを使用して日付形式MM/DD/YYYYをDD-Mmm-YYYYに変換してください

awk 'BEGIN { FS = ","; OFS = FS;} {if(NR>1){$4=date -d $4 "+%d-%b-%Y";print} else{print}}' file >> tmpfile 

答えて

1

あなたが使用する必要があります。 dateコマンドをリダイレクトし、出力を返すので、4番目の列には、ファイルの「ファイル名」を懸念しているものであればします完全なソリューションは次のようになり

awk '{ print |"date -d "$4" \"+%d-%b-%Y\"" }' filename 

awk -F, '{ for (i=1;i<=3;i++) { var=var$i"," } for (i=5;i<=NF-1;i++) { var1=var1$i"," } print |"echo "var"$(date -d "$4" \"+%d-%b-%Y\"),"var1$NF }' filename 

は、我々私たちは第4列に焦点を当てているので、列1から列3までの変数(var)を構築してから、最終的には建物1変数の日付コマンドを作成します。これらのすべてが、指示されたエコーコマンドを構築するために使用されました。

+0

は、OPは、行全体がだけでなく、4列に印刷されることを望んでいます。 – Makkes

+3

私は、ユーザーに問題の解決方法を伝えたいと考えていました。私はそれほど完全なソリューションを追加していません。 –

関連する問題