我有一个包含数字列表的数据文件:
5 5
6 6
4 4
3 3
4 4
3 3
2 2
我希望选出具有数字< = 3的两列的第一行,然后删除所有行。因此我的结果文件只是:
5 5
6 6
4 4
3 3
有人知道如何使用awk / sed吗?
答案 0 :(得分:1)
请考虑以下 sed 方法:
sed -n '1,/[0-3] [0-3]/p' file
输出:
5 5
6 6
4 4
3 3
1,/[0-3] [0-3]
- 从第一行开始的地址范围,捕获行直到遇到小于或等于3
(包含)的2位数。
指定地址范围时,两个地址用逗号分隔 (,)。地址可以是数字,正则表达式,也可以是两者的混合。
答案 1 :(得分:1)
这是一个awk解决方案:
$ awk '1; $1<=3&&$2<=3{exit}' file
5 5
6 6
4 4
3 3
说明:
awk '
1; # output record
$1 <= 3 && $2 <= 3 { exit } # if it was as requested, exit
' file
答案 2 :(得分:0)
对于Python,打印每一行,并在符合条件时突然退出循环:
<ul>
<li v-for="cit in possable">
<label>
<input
type="checkbox"
:checked="savedcbx.indexOf(+cit.id)>-1"
:value="cit.id"/>
{{cit.rname}}
</label>
</li>
</ul>
这是一个AWK解决方案:
>>> while open('somefile.txt') as f:
for line in f:
print(line, end='')
p, q = map(int, line.split())
if p <= 3 or q <= 3:
break
5 5
6 6
4 4
3 3