标题: [文本处理] 批处理如何提取固定范围的数据并写到excel中? [打印本页]
作者: ms22 时间: 2015-4-29 17:08 标题: 批处理如何提取固定范围的数据并写到excel中?
比如我有以下格式的文本文件- 001 12345675 赵一 a
- 002 2345678 钱二二 b
复制代码
。。。
要提取分成- 001 234567 赵一 a
- 002 345678 钱二二 b
复制代码
并写到excel表不同的单元格中,请高手赐教,谢谢~
数据长度是固定的,每一行的0~3,5~11类似这样
作者: gawk 时间: 2015-4-29 17:38
- @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1-4" %%i in ('type "1.txt"') do (
- set str=%%j
- set str=!str:~1,6!
- echo %%i,!str!,%%k,%%l
- ))>2.csv
复制代码
作者: ms22 时间: 2015-4-30 08:31
本帖最后由 ms22 于 2015-4-30 08:38 编辑
回复 2# gawk
多谢高手指点,试了一下是可行的,能再帮帮忙吗?谢谢
1.假如2,3,4列是连在一起的,中间没有空格分隔怎么写,好像用tokens不能分啊
2.取出来的数字写入excel变成科学计数法,怎么变成文本格式
作者: gawk 时间: 2015-4-30 09:32
回复 3# ms22
2、3、4列全部连在一起?还是有些是连在一起的,有些是空格分开的?
作者: ms22 时间: 2015-4-30 10:00
回复 4# gawk
数据连在一起的问题我试着改改成功了,现在就是1.如何变成文本格式。2.想添加一个判断,判断每一行第1个是s的话就进行处理,e的话就跳过这一行
不好意思啊,问题有点多,还请多多指点,谢谢
作者: gawk 时间: 2015-4-30 10:12
回复 5# ms22
先说第二个,你给出包含e和s的测试数据,我修改代码。
作者: ms22 时间: 2015-4-30 10:19
回复 6# gawk - 000001s9999 1xxxx1xxx
- 000002e
- 000003s9999 1xxxx1xxx
复制代码
类似这样的,如果这一行前面是s的话后面是有数据,e是没有的
作者: sinsky 时间: 2015-4-30 15:20
为什么要这样 话说。
作者: sinsky 时间: 2015-4-30 15:20
为什么要这样 话说。~~~~
作者: gawk 时间: 2015-5-5 09:06
回复 7# ms22 - @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1-4" %%i in ('type "1.txt"') do (
- set "column1=%%i"
- REM 只处理第一列包含字母s的行
- if "!column1:s=!" neq "%%i" (
- set str=%%j
- set str=!str:~1,6!
- echo %%i,!str!,%%k,%%l
- )
- ))>2.csv
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |