日付に間違った日付が表示される

日付に間違った日付が表示される

現在、次の形式のタブで区切られたテキストファイルがあります。

David   Webb    Box 34 Rural Route 2    Nixa    MO  65714   (417)555-1478   555-66-7788 09-13-1970
Martha  Kent    1122 North Hwy 5    Smallville  KS  66789   (785)555-2322   343-55-8845 04-17-1965
Edward  Nygma   443 W. Broadway Gotham City NJ  12458   (212)743-3537   785-48-5524 08-08-1987

代わりに日付形式を指定しようとしていますSeptember 13, 197009-13-1970

私がしようとしていたのは、cut -f 9 file > tmpfile次のものを使用することです。

date -f tmpfile "+%B %d, %Y" > date

でもずっと言うじゃない

date: invalid date ‘09-13-1970’
date: invalid date ‘04-17-1965’
date: invalid date ‘08-08-1987’

私は何が間違っていましたか?

ベストアンサー1

その入力形式では日付は許可されません。ストリーム編集入力のように、年を前に入力してください。

cut -f 9 file | sed 's/\(..\)-\(..\)-\(....\)/\3-\1-\2/' > tmpfile

手動テスト:

$ date --date '09-13-1970' "+%B %d, %Y"
date: invalid date ‘09-13-1970’

$ date --date '09/13/1970' "+%B %d, %Y"
September 13, 1970

$ date --date '1970/09/13' "+%B %d, %Y"
September 13, 1970

$ date --date '1970-09-13' "+%B %d, %Y"
September 13, 1970

おすすめ記事