ソースファイルに18列の列10,11,15がdd/mm/yyyyの形式であり、これらすべてをyyyy-mm-ddに変換し、他の列とともにターゲットファイルに書き込む必要があります。 私は変数で日付の書式設定機能を認識していますが、ファイルのいくつかの列に同じものを適用する方法はわかりません。シェルスクリプトを使用してファイル内の日付形式をdd/mm/yyyyからyyyy-mm-ddに変更します。
0
A
答えて
0
おそらくコマンドawk
を使用して解決することができます。
あなたは3つのCOLSは、日付(COL 10、11、15)を含有してきたように、ここで私は、フィールド区切り文字は|
あるサンプル文字列を想定して、列は日付が含まれている第四COL
aa|bb|cc|29/09/2017|dd|ee|ff
は、抽出するためにString-Manipulation Functionsを使用しています日付を入力し、getlineでフォーマットして、期待される構文にフォーマットします。
コマンドは
echo 'aa|bb|cc|2017-09-29|dd|ee|ff' | awk -F\| 'BEGIN{OFS="|"}{$4=gensub(/([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})/,"\\3\\2\\1","g",$4); "date --date=\""$4"\" +\"%F\"" | getline a; $4=a; print $0}'
出力はあなたを助けるために
aa|bb|cc|2017-09-29|dd|ee|ff
希望です。あなたがdateutils
パッケージがインストールされている場合
0
、あなたはdateutils.dconv
cat file | dateutils.dconv -S -i "%d/%m/%Y"
-i
は、入力日付形式に-S
SEDモード、プロセスだけでマッチした文字列を指定して使用してコピーすることができ、残り
入力ファイル
aa|bb|cc|29/09/2017|dd|ee|ff|02/10/2017|gg
出力
aa|bb|cc|2017-09-29|dd|ee|ff|2017-10-02|gg
1
私はテストで使用可能なマシンを持っていますが、あなたが同じことを3回行っているので、少しの機能をawk
の使用を検討していません。 AWK functions、およびsplitため
awk ‘
function dodate(in){
split(in,/\//,a) # split existing date into elements of array “a”
return a[3] “-“ a[2] “-“ a[1]
}
{ $10=dodate($10); $11=dodate($11); $15=dodate($15); print }’ yourFile
参考:それはこのようになります。
各行のフィールドはカンマで区切られている場合は、とのことawk
を言う:私はdateコマンドを使用すると思い
awk -F, ...
0
:
while read fmtDate
do
date -d ${fmtDate} "+%Y-%m-%d"
done
関連する問題
- 1. 日付形式をyyyymmddからyyyy/mm/ddに変更します。
- 2. 日付形式(YYYYMMDD)の形式を変更する必要があります
- 3. データベースから日付形式を変更していますか?
- 4. 'yyyymmdd'形式を使用してVarcharをDatetimeに変換する
- 5. ファイルの日付形式をDDMMMYYYYからMMDDYYYYに変更する
- 6. R日付の形式はyyyymmdd
- 7. XMLの日付をyyyymmddから月の日に変更します。
- 8. テキストボックス内の日付形式を変更します
- 9. MySQL 5.1を使用してRails 2.0.2のデフォルトの形式から日付形式を変更する方法
- 10. PHPの日付形式を別の形式に使用していますか?
- 11. C++を使用して、日付時刻文字列形式の任意の形式をUS日付時刻形式に変更します。
- 12. シェルスクリプト内で日付の書式を変更する
- 13. Javascriptを使用してMySQLの日付形式をDD/MM/YYの日付形式に変換する
- 14. 日付の変更形式
- 15. jQueryを使用して日付形式をd-m-yに変更する
- 16. ruby on railsのデフォルト日付形式を変更しますか?
- 17. 日付の形式を変更しますか?
- 18. 変更日付形式/ 03/2017年3月8日08から2017 Iから日付形式を変更しようとしている
- 19. Altova MapForceを使用して日付形式を変換する
- 20. moment.jsを使用して日付形式を変換する
- 21. 日付時刻を使用してPythonの時刻形式を変更する
- 22. 日付の形式をmm/dd/yyyyからyyyy-mm-ddに変更します
- 23. 変更日付形式
- 24. メインページ、ワードプレスで日付形式を変更しますか?
- 25. 日付形式を「yyyy/mm/dd」から「mm-dd-yyyy」に変更しました。
- 26. 数値YYYYMMDD形式を日付に変換するためのSQL構文
- 27. 日付形式をデータベース値に変更します
- 28. 日付形式をdd-MM-yyyyからyyyy-MM-ddに変更します。
- 29. 日付形式をhtmlからmysqlに変更する(ベストプラクティス?)
- 30. )DateTime.TryParseExactを(使用してYYYYMMDDうーん形式で日付を解析するために失敗
OPは、各ライン上に3つの日付を持っていますファイル。行のフィールドはおそらくカンマで区切られており、日付はフィールド10,11,15にあります。あなたのコードはそれに対処していません。 –