【发布时间】:2022-11-23 11:22:21
【问题描述】:
现在我正在尝试删除文件中行尾编号为 80000 或更大的所有行
例如
Jennifer Cowan:548-834-2348:583 Laurel Ave., Kingsville, TX 83745:10/1/35:58900
Jon DeLoach:408-253-3122:123 Park St., San Jose, CA 04086:7/25/53:85100
当我运行 sed 时,命令应该只删除 Jon DeLoach 的行
我试过直到
sed '/:0*[1-9][0-9]{5,}|:0*[8-9][0-9]{4,}/d' datebook.txt
自从
egrep ':0*[1-9][0-9]{5,}|:0*[8-9][0-9]{4,}' datebook.txt
返回所有具有 800000 或更大的行
然而,sed 命令实际上不起作用并发现是因为我制作的正则表达式
':0*[1-9][0-9]{5,}|:0*[8-9][0-9]{4,}'
只适用于 egrep 而不是 grep
我是正则表达式的新手,有点混淆如何从 egrep 更改为 grep
【问题讨论】:
-
你必须使用
sed吗?使用awk是相对简单的,例如awk -F":" '$NF < 80000' file