Awk
如何通過數字範圍過濾行?
該文件只有一列:
fs://derps123/20210103/ fs://derps123/20210104/ fs://derps123/20210105/ fs://derps123/20210106/ fs://derps123/20210107/ fs://derps123/20210108/ fs://derps123/20210109/
我想過濾和之間的
20210105
線20210108
我嘗試使用 awk 進行過濾,
date
但這會引發語法錯誤:awk -v date='gs://derps123/''$1!=date{next};/20210105/,/20210108/' folders.txt
您會收到語法錯誤,因為
-v
選項值和 awk 程序之間沒有空格。您可以將日期視為數字:
$ awk -v low=20210105 -v high=20210108 -v FS='/' '$4 >= low && $4 <= high' folders.txt fs://derps123/20210105/ fs://derps123/20210106/ fs://derps123/20210107/ fs://derps123/20210108/
你可以用 sed 做到這一點:
sed -n '/20210105/,/20210108/p' folders.txt