想用批处理 删除一个文件夹内多个 TXT文本的第一列 把第二列数据顶头 或者删掉每行的前17个字符 数据如下
前面的19行是头文件要需要删掉然后剩下的数据第一列删掉保留第二列并且顶头数据有很多行~~如果按列删除不好判断就删除每行的前17个字符留下后面的11620391184000...
前面的19行是头文件 要需要删掉 然后剩下的数据 第一列删掉 保留第二列 并且顶头
数据有很多行~~ 如果按列删除不好判断 就删除每行的前17个字符 留下后面的
1162039118 4000 3
Input1(t)
1 32768 1 2 32768 1 0
1.02400000000000e+004 1.00000000000000e+000 1.00000000000000e+001 1.00000000000000e+000 0
0 32768 1 0
17 0 0 0 0 1 0.00000000000000e+000 9.76562514551915e-005
0
11 0 0 0 1 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0 0 0 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0
0.0000000E+000 -8.4621971E-003
9.7656251E-005 3.0548381E-006
1.9531250E-004 5.1721715E-004
2.9296876E-004 -5.3078406E-003
3.9062501E-004 -1.0586553E-004
4.8828125E-004 -3.6200217E-003
5.8593752E-004 -3.4688199E-003
6.8359374E-004 -1.7025720E-003
7.8125001E-004 -3.4792055E-003
8.7890628E-004 -2.7445080E-003
9.7656250E-004 4.1031619E-003
1.0742188E-003 -8.9623779E-003
1.1718750E-003 -1.9840279E-003
1.2695313E-003 6.2096249E-003
1.3671875E-003 -1.7419474E-002
1.4648438E-003 4.2958730E-003
1.5625000E-003 9.4992109E-004
1.6601563E-003 -1.4083743E-002
1.7578126E-003 7.8553520E-003
1.8554687E-003 -4.7166273E-003
1.9531250E-003 -4.9354834E-003
2.0507814E-003 2.7155862E-003
2.1484375E-003 -6.0951929E-003
2.2460937E-003 -1.4004346E-003
也可以不考虑头文件 直接 每行删除前17个字符 应该不难吧? 不过 最好能把指定文件夹内的TXT文件都这样处理 文件名 Input1(t) 2012-05-26, 09-43-48.txt 改成 input后面的数字 Input1(t) 2012-05-26, 09-43-48.txt →1.txt 这样最好啦! 展开
数据有很多行~~ 如果按列删除不好判断 就删除每行的前17个字符 留下后面的
1162039118 4000 3
Input1(t)
1 32768 1 2 32768 1 0
1.02400000000000e+004 1.00000000000000e+000 1.00000000000000e+001 1.00000000000000e+000 0
0 32768 1 0
17 0 0 0 0 1 0.00000000000000e+000 9.76562514551915e-005
0
11 0 0 0 1 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0 0 0 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0
0.0000000E+000 -8.4621971E-003
9.7656251E-005 3.0548381E-006
1.9531250E-004 5.1721715E-004
2.9296876E-004 -5.3078406E-003
3.9062501E-004 -1.0586553E-004
4.8828125E-004 -3.6200217E-003
5.8593752E-004 -3.4688199E-003
6.8359374E-004 -1.7025720E-003
7.8125001E-004 -3.4792055E-003
8.7890628E-004 -2.7445080E-003
9.7656250E-004 4.1031619E-003
1.0742188E-003 -8.9623779E-003
1.1718750E-003 -1.9840279E-003
1.2695313E-003 6.2096249E-003
1.3671875E-003 -1.7419474E-002
1.4648438E-003 4.2958730E-003
1.5625000E-003 9.4992109E-004
1.6601563E-003 -1.4083743E-002
1.7578126E-003 7.8553520E-003
1.8554687E-003 -4.7166273E-003
1.9531250E-003 -4.9354834E-003
2.0507814E-003 2.7155862E-003
2.1484375E-003 -6.0951929E-003
2.2460937E-003 -1.4004346E-003
也可以不考虑头文件 直接 每行删除前17个字符 应该不难吧? 不过 最好能把指定文件夹内的TXT文件都这样处理 文件名 Input1(t) 2012-05-26, 09-43-48.txt 改成 input后面的数字 Input1(t) 2012-05-26, 09-43-48.txt →1.txt 这样最好啦! 展开
4个回答
2012-06-13
展开全部
删掉前面17个字符:
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt
删掉前面17个字符, 包括前19行(确定是19行哦):
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq skip=19 delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt
删掉前面17个字符, 包括前19行(确定是19行哦):
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq skip=19 delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt
更多追问追答
追问
运行之后 得到的OK 文件是空白~
请把我发上来的数据全选复制存到TXT里试一下·~~
追答
不好意思,失误了。再试一下:
删掉前面17个字符:
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo !h:~17!
))>>OK.txt
删掉前面17个字符, 包括前19行(确定是19行哦):
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq skip=19 delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo !h:~17!
))>>OK.txt
另外,我复制你的数据发现,前面的那些是 14行,不是19行;
删掉前17个字符,会把第二列的第一个字符(负号或空格)删掉。可能是通过百度复制粘贴造成的。你试验一下,可以修改里面的 skip 和 echo !h:~17! 调整来适应你实际的数据。
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2* delims=t(" %%i in ('dir/b input*.txt') do (
set fn=input%%i(t%%j
(for /f "skip=19 tokens=2" %%k in ('type "!fn!"') do echo %%k)>%%i.txt
ren del "!fn!")
setlocal enabledelayedexpansion
for /f "tokens=2* delims=t(" %%i in ('dir/b input*.txt') do (
set fn=input%%i(t%%j
(for /f "skip=19 tokens=2" %%k in ('type "!fn!"') do echo %%k)>%%i.txt
ren del "!fn!")
追问
使用之后无变化呀~~~
追答
最后一句删除了光保留最后的括号。
或者看看我测试的过程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sed "1,19d;s/.\{16\}//;p" Input1(t) 2012-05-26, 09-43-48.txt
gawk "NR>19{print $2}" Input1(t) 2012-05-26, 09-43-48.txt
gawk "NR>19{print $2}" Input1(t) 2012-05-26, 09-43-48.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询