Saya berasumsi <br>dalam pertanyaan Anda di akhir datekolom adalah sesuatu yang tidak diinginkan. Bagaimanapun, itu dapat dihapus dengan mudah jika ada. Namun, datang ke bagian utama Anda dapat mencapai apa yang Anda coba lakukan dengan menggunakan,
sort -k 2n filename.txt
Sekarang, perintah di atas akan memberikan output dengan cara diurutkan. Sekarang, perintah di bawah ini akan memberikan apa yang Anda cari.
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Penjelasan
Perintah sortir pada dasarnya mengurutkan file berdasarkan kolom kedua yang merupakan tanggal. Jadi saya memodifikasi file input Anda untuk menguji perintah jika berfungsi karena file input memiliki semua data yang diurutkan secara default. Setelah itu, awkperintah mencetak semua baris sampai kita menemukan kecocokan tertentu.
Pengujian
cat filename.txt
647919 2014/01/01
647946 2012/11/30
647955 2011/01/04
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04
Sekarang, sort -k 2n filename.txtkeluarannya adalah,
647955 2011/01/04
647946 2012/11/30
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04
647919 2014/01/01
Sekarang kami puas bahwa file tersebut diurutkan pada kolom kedua. Sekarang, untuk memilih nilai-nilai UPTO pada tanggal tertentu,
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Dalam contoh di atas, saya mendapatkan semua nilai upto 2013/12/03. Outputnya adalah,
647955 2011/01/04
647946 2012/11/30
Tidak, <br>ini bagian dari file saya
Jika demikian, kita dapat mengubah sedikit perintah seperti di bawah ini.
awk '{print $1, substr($2, 1, length($2)-4)}' filename.txt |
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Jadi saya hanya menghapus semua <br>tag dari kolom kedua dan kemudian mengirim perintah yang disebutkan di atas.
Referensi
https://unix.stackexchange.com/a/11323/47538
https://unix.stackexchange.com/a/83069/47538