标题: [文本处理] [已解决]批处理怎样把文本中每一行指定列的数字分别相加并输出到原文档? [打印本页]
作者: zrf0123 时间: 2015-11-25 00:23 标题: [已解决]批处理怎样把文本中每一行指定列的数字分别相加并输出到原文档?
本帖最后由 pcl_test 于 2016-11-16 19:22 编辑
一个txt文件有多行,需要 每行的第32 34 36 38 40 42 个数字分别相加(如 第一行的第31个数字 与第2行、第三行...的第31个数字相加),并把结果输出到文档第一行。
求哪位大侠帮忙,万分感谢!
每行内容都是这样的 192.168.1.11 2015/11/23 21:34 1 2 1 7 0 4
字符是一样多的
作者: 依山居 时间: 2015-11-25 00:30
文件类型不知道,数据长度不知道,不是打飞机太难,是飞机都不见怎么打?
作者: 依山居 时间: 2015-11-25 00:30
传文件上网盘。
作者: zrf0123 时间: 2015-11-25 00:47
回复 2# 依山居
已修改 多谢关注!
作者: terse 时间: 2015-11-25 01:25
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- set str=%%i
- set "str=!str:~-12!"
- set "str=!str: =!"
- for /l %%j in (0,1,5) do set /a "$%%j+=!str:~%%j,1!"
- )
-
- for /l %%i in (0,1,5) do set "s=!s! !$%%i!"
- >b.txt echo!s!
- pause
复制代码
作者: 依山居 时间: 2015-11-25 05:09
文件按列切分后,可以看成一个二维数组~
作者: DAIC 时间: 2015-11-25 09:56
- @echo off
- gawk "{a+=$4;b+=$5;c+=$6;d+=$7;e+=$8;f+=$9}END{print a,b,c,d,e,f}" 1.txt > 2.txt
- type 1.txt >> 2.txt
- move /y 2.txt 1.txt
复制代码
作者: DAIC 时间: 2015-11-25 10:00
- @echo off
- for /f "tokens=4-9" %%i in ('type "1.txt"') do (
- set /a a+=%%i
- set /a b+=%%j
- set /a c+=%%k
- set /a d+=%%l
- set /a e+=%%m
- set /a f+=%%n
- )
- > 2.txt echo %a% %b% %c% %d% %e% %f%
- >> 2.txt type 1.txt
- move /y 2.txt 1.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |