标题: [己解决]gawk删除第2列两变量范围内的行 [打印本页]
作者: keshun 时间: 2019-4-10 23:24 标题: [己解决]gawk删除第2列两变量范围内的行
买2 5.835 -0.0685 1 3390
买15 5.821 -0.3082 1 4852
买16 5.82 -0.3253 1 3317
买31 5.793 -0.7878 1 4272
买33 5.791 -0.8220 1 8500
买39 5.78 -1.0104 11 3375
买42 5.775 -1.0960 4 3537
买48 5.76 -1.3529 3 4767
买50 5.753 -1.4728 1 3318
买51 5.75 -1.5242 9 4087
买55 5.745 -1.6098 9 5062
买70 5.701 -2.3634 3 3060
买71 5.7 -2.3805 14 5194
买77 5.67 -2.8943 5 3591
买94 5.6 -4.0931 12 3824
买96 5.596 -4.1616 7 5339
删除a.txt第2列%a%与%b%范围内的行,比如a=5.8,b=5.7,两个变量有时a>b,a<b,a=b
买2 5.835 -0.0685 1 3390
买15 5.821 -0.3082 1 4852
买16 5.82 -0.3253 1 3317
买77 5.67 -2.8943 5 3591
买94 5.6 -4.0931 12 3824
买96 5.596 -4.1616 7 5339
求代码,最好用gawk,不要输出新文本,文本内直接删除,谢谢!!
作者: WHY 时间: 2019-4-11 08:52
本帖最后由 WHY 于 2019-4-11 09:06 编辑
- gawk "$2>5.8 || $2<5.7" a.txt > b.txt
复制代码
- sed -r "/^\S+\s+5\.(7[0-9]*|80*)\b/d" a.txt > b.txt
复制代码
作者: keshun 时间: 2019-4-11 21:51
本帖最后由 keshun 于 2019-4-11 22:25 编辑
回复 2# WHY - gawk "$2>5.8 || $2<5.7" a.txt > b.txt
- gawk "$2>5.7 || $2<5.8" a.txt > b.txt
复制代码
因为这两个数是变量,会出现这两种情况,1正常,2错误,能否改进下,谢谢!!
作者: WHY 时间: 2019-4-11 23:41
回复 3# keshun - @echo off
- set "a=5.7"
- set "b=5.8"
- gawk "BEGIN{a=%a%>%b%?%a%:%b%; b=%a%>%b%?%b%:%a%}; $2>a || $2<b" a.txt > b.txt
- pause
复制代码
作者: keshun 时间: 2019-4-11 23:44
回复 4# WHY
非常感谢!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |