take date from file in unix

后端 未结 1 1920
终归单人心
终归单人心 2021-01-29 05:49

I wanna take the date from a .txt file like this :

933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox
1129|Carmen|Lepland|fema         


        
相关标签:
1条回答
  • 2021-01-29 06:12

    As far as I can tell in my brief experiment, you don't need the gsub since gawk can compare strings by lexical order (and if your dates are YYYY-MM-DD and LANG=C, lexical and date are the same).

    So I ran

    gawk -F'|' -v from='1982-05-29' -v to='2010-01-01' '(from<=$5) && ($5<=to)' persons.dat.txt 
    

    and got

    933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox
    1129|Carmen|Lepland|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer
    4194|Hồ Chí|Do|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer
    

    which looks like what you want to me.

    The rest of your code tries to assign to dateA and dateB, but doesn't use it anywhere. Also, it looks like you're missing a $() there: if your intention is to put the result of your date command into dateA, use dateA=$(date -d "$2" +%Y%m%d) though given that you have YYYY-MM-DD on file, dateA=$(date -d "$2" +%Y-%m-%d) look slike a better plan.

    0 讨论(0)
提交回复
热议问题