如何从平面文件中删除特定于 Unix 时间戳的数据

gr6*_*r68 0 awk grep timestamp sed

我有一个包含这样的列表的大文件

email@domain.com^B1569521698
email2@domain.com,@2domain.com^B1569521798
email3@domain.com,test@2domain.com^B1569521898
email10000@domain.com^B1569521998
..
..
Run Code Online (Sandbox Code Playgroud)

该文件名为 /usr/local/email/whitelist

^B 后的数字是 unix 时间戳

我需要从列表中删除时间戳小于(例如)1569521898 的所有行。

我尝试使用各种 awk/sed 组合但没有结果。

kva*_*our 5

^B您注意到的字符是控制字符。前 32 个控制字符是 ASCII 码01FH,形成一组特殊的非打印字符。这些字符被称为控制字符,因为这些字符执行各种打印机和显示控制操作而不是显示符号。这个特殊的代表STXStart of Text

您可以在 shell 中键入控制字符:Ctrl+ v Ctrl+ b,或者您可以直接使用八进制表示 ( \002)。

awk -F '\002' '($2 >= 1569521898)'
Run Code Online (Sandbox Code Playgroud)