Board logo

标题: [文本处理] 批处理怎样把最后列的数子不等于0 所在的行抽出? [打印本页]

作者: freddy_fu    时间: 2023-10-31 11:31     标题: 批处理怎样把最后列的数子不等于0 所在的行抽出?

最后列的数子不等于0 所在的行抽出

OBJECTID        land_type        local_gove        update_inf        common_id        image_name        Shape_Length        Shape_Area        UPDATETYPE_C
3879        200        313718        0        19912553        23FEB28015110-S3XS_R8C1-016028463460_01_P001.TIF        0.001353034        4.72202E-08        3
3885        100        313718        0        19912559        23FEB28015016-S3XS_R08C2-016028463410_01_P001.TIF        0.001190672        4.72647E-08        0
3886        200        313718        0        19912561        23FEB28015016-S3XS_R07C3-016028463410_01_P001.TIF        0.001025997        4.72988E-08        3
3887        200        313718        0        19912562        23FEB28015016-S3XS_R08C3-016028463410_01_P001.TIF        0.000923522        4.72942E-08        0
3888        200        313718        0        19912564        23FEB28015016-S3XS_R07C3-016028463410_01_P001.TIF        0.000884924        4.73243E-08        0
3890        200        313718        0        19912566        23FEB28015016-S3XS_R08C3-016028463410_01_P001.TIF        0.001543841        4.73363E-08        3
3891        200        313718        0        19912572        23FEB28015110-S3XS_R8C1-016028463460_01_P001.TIF        0.001262402        4.74156E-08        0
3918        200        313718        0        19912604        23FEB28015110-S3XS_R8C1-016028463460_01_P001.TIF        0.001030268        4.76912E-08        0
3919        200        313718        2        19912605        23FEB28015016-S3XS_R08C3-016028463410_01_P001.TIF        0.001479133        1.12335E-07        4
3920        200        313718        0        19912606        23FEB28015110-S3XS_R8C1-016028463460_01_P001.TIF        0.001183872        4.77112E-08        0
3921        200        313718        0        19912607        23FEB28015110-S3XS_R8C1-016028463460_01_P001.TIF        0.001557441        4.77183E-08        0
作者: Batcher    时间: 2023-10-31 11:54

回复 1# freddy_fu


    请把需要处理的原始文件上传到网盘,以便测试代码。
作者: terse    时间: 2023-10-31 12:48

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.      if defined str (
  4.         for %%a in (%%i) do set n=%%a
  5.         if !n! neq 0 echo %%i
  6.      ) else echo %%i&set str=1
  7. )
  8. pause
复制代码

作者: qixiaobin0715    时间: 2023-10-31 12:53

如果列的分隔符是空格,则下面代码引号中的字符就是“空格+0”;如果分隔符是水平制表符,则是“水平制表符+0”:
  1. findstr /v /e /c:" 0" 1.txt>2.txt
复制代码

作者: hfxiang    时间: 2023-10-31 15:26

回复 1# freddy_fu
如不介意第3方工具,则
gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )方法如下
  1. gawk "!/0$/" 1.txt>2.txt
复制代码
sed( http://bcn.bathome.net/tool/4.9/sed.exe )方法如下
  1. sed "/0$/d" 1.txt>2.txt
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2