[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[己解决]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,不要输出新文本,文本内直接删除,谢谢!!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 WHY 于 2019-4-11 09:06 编辑
  1. gawk "$2>5.8 || $2<5.7" a.txt > b.txt
复制代码
  1. sed -r "/^\S+\s+5\.(7[0-9]*|80*)\b/d" a.txt > b.txt
复制代码
1

评分人数

TOP

本帖最后由 keshun 于 2019-4-11 22:25 编辑

回复 2# WHY
  1. gawk "$2>5.8 || $2<5.7" a.txt > b.txt
  2. gawk "$2>5.7 || $2<5.8" a.txt > b.txt
复制代码
因为这两个数是变量,会出现这两种情况,1正常,2错误,能否改进下,谢谢!!

TOP

回复 3# keshun
  1. @echo off
  2. set "a=5.7"
  3. set "b=5.8"
  4. gawk "BEGIN{a=%a%>%b%?%a%:%b%; b=%a%>%b%?%b%:%a%}; $2>a || $2<b" a.txt > b.txt
  5. pause
复制代码
1

评分人数

TOP

回复 4# WHY


    非常感谢!!

TOP

返回列表