标题: [文本处理] [已解决]求删除重复字符串之后的批处理代码 [打印本页]
作者: meiszp 时间: 2019-1-25 21:36 标题: [已解决]求删除重复字符串之后的批处理代码
有下面的文本,希望删除第5次出现“KRITISCHE DREHZAHL”字符串行之后的内容。并且删除一些不需要的行。
谢谢!
下面的代码只能删除最后一次出现之后的行。个人想着应该加一个计数,统计出现的次数,根据此删除。- @echo off&Setlocal Enabledelayedexpansion
- for /f "tokens=1* delims=:" %%i in ('findstr /n "DREHZAHL" test.txt ') do (
- set /a m=%%i
- for /f "tokens=1* delims=:" %%a in ('findstr /n "." test.txt') do (
- if %%a lss !m! (echo %%b)
- )
- )>new.txt
复制代码
KRIT.DREHZAHL: 2518. 7792. 10879. 16791. 19757.
NR DELTAX XI ETA
0 .0000 .0000 -.243 .055 .010 -1.000 -1.000
1 .0020 .0004 -.241 .058 .010 -.997 -.995
2 .0200 .0046 -.221 .083 .011 -.963 -.947
3 .0690 .0190 -.153 .170 .012 -.848 -.778
1 删除此行 不一定是1
- 13 - 删除此行 不一定是13
4 .0560 .0306 -.098 .240 .014 -.755 -.642
5 .0400 .0390 -.058 .290 .015 -.690 -.547
6 .0560 .0506 -.003 .361 .016 -.602 -.418
7 .0590 .0629 .055 .436 .018 -.522 -.297
8 .1200 .0880 .173 .591 .021 -.404 -.108
9 .0000 .0880 .173 .591 .021 -.404 -.108
10 .1000 .1088 .279 .751 .025 -.383 -.026
11 .1200 .1338 .382 .866 .028 -.363 .017
12 .3300 .2026 .601 .972 .028 -.271 .058
13 .1900 .2422 .688 .915 .025 -.196 .050
14 .2528 .2949 .794 .807 .019 -.090 .034
15 .0362 .3024 .809 .789 .019 -.075 .031
16 .1990 .3439 .881 .673 .014 .008 .013
17 .1950 .3845 .936 .528 .008 .078 -.006
18 .1740 .4208 .971 .377 .003 .126 -.021
19 .1740 .4571 .993 .212 -.002 .155 -.034
20 .1667 .4918 1.000 .045 -.005 .163 -.041
21 .1580 .5247 .996 -.113 -.008 .153 -.043
22 .1410 .5541 .984 -.252 -.010 .131 -.041
23 .1410 .5835 .963 -.385 -.011 .099 -.035
24 .1410 .6129 .935 -.510 -.011 .057 -.025
25 .1280 .6396 .903 -.614 -.010 .013 -.015
26 .1280 .6663 .865 -.706 -.008 -.034 -.002
27 .1280 .6929 .822 -.787 -.005 -.083 .011
28 .1280 .7196 .773 -.856 -.001 -.131 .025
29 .0289 .7256 .761 -.869 .000 -.141 .028
30 .1264 .7520 .709 -.924 .005 -.186 .042
31 .1100 .7749 .661 -.965 .009 -.223 .053
32 .1100 .7978 .611 -.997 .015 -.257 .063
33 .1000 .8187 .556 -1.000 .023 -.280 .071
34 .1000 .8395 .490 -.970 .035 -.290 .075
35 .1450 .8697 .381 -.882 .063 -.285 .076
36 .1200 .8947 .277 -.764 .100 -.258 .071
37 .1000 .9156 .170 -.605 .171 -.196 .056
38 .0000 .9156 .170 -.605 .171 -.196 .056
39 .1500 .9469 .020 -.425 .418 -.077 .026
40 .0150 .9500 .005 -.408 .448 -.063 .023
41 .1863 .9888 -.183 -.200 .873 .122 -.025
42 .0537 1.0000 -.237 -.140 1.000 .176 -.039
1. KRITISCHE DREHZAHL = 2698.6 (U/MIN)
1 删除此行 不一定是1
- 14 - 删除此行 不一定是14
2. KRITISCHE DREHZAHL = 8914.3 (U/MIN)
3. KRITISCHE DREHZAHL = 12271.1 (U/MIN)
4. KRITISCHE DREHZAHL = 19538.2 (U/MIN)
5. KRITISCHE DREHZAHL = 21935.1 (U/MIN) 删除此行之后的内容
E I G E N V E K T O R E N
KRIT.DREHZAHL: 2699. 8914. 12271. 19538. 21935.
NR DELTAX XI ETA
0 .0000 .0000 -.407 -.573 -.043 -1.000 -1.000
1 .0020 .0004 -.405 -.570 -.043 -.994 -.995
2 .0200 .0046 -.382 -.533 -.040 -.934 -.945
3 .0690 .0190 -.305 -.406 -.030 -.725 -.770
4 .0560 .0306 -.242 -.303 -.022 -.556 -.629
5 .0400 .0390 -.198 -.229 -.016 -.438 -.531
6 .0560 .0506 -.135 -.127 -.009 -.276 -.400
7 .0590 .0629 -.069 -.021 -.001 -.119 -.279
8 .1200 .0880 .064 .189 .015 .151 -.103
9 .0000 .0880 .064 .189 .015 .151 -.103
10 .1000 .1088 .184 .383 .029 .335 -.054
11 .1200 .1338 .300 .532 .039 .437 -.039
12 .3300 .2026 .547 .719 .048 .460 -.028
13 .1900 .2422 .646 .701 .043 .356 -.023
14 .2528 .2949 .767 .646 .035 .192 -.016
15 .0362 .3024 .783 .635 .033 .167 -.015
16 .1990 .3439 .865 .558 .024 .023 -.008
17 .1950 .3845 .927 .449 .013 -.110 .000
18 .1740 .4208 .967 .328 .003 -.205 .006
1
- 15 -
19 .1740 .4571 .991 .191 -.007 -.268 .010
20 .1667 .4918 1.000 .051 -.016 -.290 .013
21 .1580 .5247 .996 -.083 -.023 -.277 .014
22 .1410 .5541 .982 -.200 -.029 -.239 .013
23 .1410 .5835 .959 -.312 -.033 -.180 .011
24 .1410 .6129 .927 -.415 -.036 -.102 .007
25 .1280 .6396 .891 -.498 -.037 -.021 .004
26 .1280 .6663 .848 -.570 -.037 .067 -.001
27 .1280 .6929 .799 -.629 -.036 .156 -.005
28 .1280 .7196 .744 -.676 -.034 .241 -.010
29 .0289 .7256 .731 -.684 -.033 .260 -.011
30 .1264 .7520 .672 -.717 -.030 .336 -.015
31 .1100 .7749 .617 -.737 -.027 .397 -.018
32 .1100 .7978 .560 -.749 -.024 .451 -.021
33 .1000 .8187 .498 -.730 -.021 .479 -.023
34 .1000 .8395 .425 -.676 -.019 .478 -.023
35 .1450 .8697 .302 -.546 -.023 .433 -.021
36 .1200 .8947 .184 -.383 -.037 .353 -.018
37 .1000 .9156 .063 -.155 -.093 .234 -.012
38 .0000 .9156 .063 -.155 -.093 .234 -.012
39 .1500 .9469 -.109 .234 -.353 .158 -.007
40 .0150 .9500 -.126 .277 -.387 .153 -.007
41 .1863 .9888 -.343 .836 -.859 .110 -.003
42 .0537 1.0000 -.405 1.000 -1.000 .100 -.002
1. KRITISCHE DREHZAHL = 2770.2 (U/MIN)
2. KRITISCHE DREHZAHL = 9282.7 (U/MIN)
1
- 16 -
3. KRITISCHE DREHZAHL = 13136.2 (U/MIN)
4. KRITISCHE DREHZAHL = 20498.6 (U/MIN)
5. KRITISCHE DREHZAHL = 24555.0 (U/MIN)
E I G E N V E K T O R E N
删除后的文件new.txt
KRIT.DREHZAHL: 2518. 7792. 10879. 16791. 19757.
NR DELTAX XI ETA
0 .0000 .0000 -.243 .055 .010 -1.000 -1.000
1 .0020 .0004 -.241 .058 .010 -.997 -.995
2 .0200 .0046 -.221 .083 .011 -.963 -.947
3 .0690 .0190 -.153 .170 .012 -.848 -.778
4 .0560 .0306 -.098 .240 .014 -.755 -.642
5 .0400 .0390 -.058 .290 .015 -.690 -.547
6 .0560 .0506 -.003 .361 .016 -.602 -.418
7 .0590 .0629 .055 .436 .018 -.522 -.297
8 .1200 .0880 .173 .591 .021 -.404 -.108
9 .0000 .0880 .173 .591 .021 -.404 -.108
10 .1000 .1088 .279 .751 .025 -.383 -.026
11 .1200 .1338 .382 .866 .028 -.363 .017
12 .3300 .2026 .601 .972 .028 -.271 .058
13 .1900 .2422 .688 .915 .025 -.196 .050
14 .2528 .2949 .794 .807 .019 -.090 .034
15 .0362 .3024 .809 .789 .019 -.075 .031
16 .1990 .3439 .881 .673 .014 .008 .013
17 .1950 .3845 .936 .528 .008 .078 -.006
18 .1740 .4208 .971 .377 .003 .126 -.021
19 .1740 .4571 .993 .212 -.002 .155 -.034
20 .1667 .4918 1.000 .045 -.005 .163 -.041
21 .1580 .5247 .996 -.113 -.008 .153 -.043
22 .1410 .5541 .984 -.252 -.010 .131 -.041
23 .1410 .5835 .963 -.385 -.011 .099 -.035
24 .1410 .6129 .935 -.510 -.011 .057 -.025
25 .1280 .6396 .903 -.614 -.010 .013 -.015
26 .1280 .6663 .865 -.706 -.008 -.034 -.002
27 .1280 .6929 .822 -.787 -.005 -.083 .011
28 .1280 .7196 .773 -.856 -.001 -.131 .025
29 .0289 .7256 .761 -.869 .000 -.141 .028
30 .1264 .7520 .709 -.924 .005 -.186 .042
31 .1100 .7749 .661 -.965 .009 -.223 .053
32 .1100 .7978 .611 -.997 .015 -.257 .063
33 .1000 .8187 .556 -1.000 .023 -.280 .071
34 .1000 .8395 .490 -.970 .035 -.290 .075
35 .1450 .8697 .381 -.882 .063 -.285 .076
36 .1200 .8947 .277 -.764 .100 -.258 .071
37 .1000 .9156 .170 -.605 .171 -.196 .056
38 .0000 .9156 .170 -.605 .171 -.196 .056
39 .1500 .9469 .020 -.425 .418 -.077 .026
40 .0150 .9500 .005 -.408 .448 -.063 .023
41 .1863 .9888 -.183 -.200 .873 .122 -.025
42 .0537 1.0000 -.237 -.140 1.000 .176 -.039
1. KRITISCHE DREHZAHL = 2698.6 (U/MIN)
2. KRITISCHE DREHZAHL = 8914.3 (U/MIN)
3. KRITISCHE DREHZAHL = 12271.1 (U/MIN)
4. KRITISCHE DREHZAHL = 19538.2 (U/MIN)
5. KRITISCHE DREHZAHL = 21935.1 (U/MIN)
作者: yhcfsr 时间: 2019-1-25 22:17
你必须说明哪些规则的行要删除,而不是在图片上标注哪行要删
作者: meiszp 时间: 2019-1-25 22:27
回复 2# yhcfsr
希望删除第5次出现“KRITISCHE DREHZAHL”字符串行之后的内容。
作者: yhcfsr 时间: 2019-1-25 22:37
本帖最后由 yhcfsr 于 2019-1-25 23:22 编辑
回复 3# meiszp
问题是第5次之前,你还有要删除的行,那以什么标准去判断是否要删除行?
最好把测试文件上传到网上.
将一个或多个要处理的文件拖入bat即可- <# :将文件拖入bat执行
- @echo off&cd/d "%~dp0"
- set "batfile=%~0"&set "psfile=%~dpn0.ps1"
- :lp
- set "args=%args%"%~1" "
- shift
- if "%~1" neq "" goto :lp
- more +13 "%batfile%">"%psfile%"
- powershell -Nologo -NoProfile -Exec bypass -file "%psfile%" %args%
- del /f /q "%psfile%"
- pause&exit
- #>
-
-
- foreach($arg in $args)
- {
- $file=$arg;
- $count=0;
- [system.collections.arraylist] $result=@();
- $content=type $file -ReadCount 0;
- foreach($line in $content)
- {
- if(($line -match '^\d+\s*$') -or ($line -match '^\s+- \d+ -\s*$')){continue;}
- if($line -match 'KRITISCHE DREHZAHL'){$count+=1}
- [void] $result.Add($line)
- if($count -ge 5){break;}
- }
- [io.file]::WriteAllLines($($file+'.log'),$result,[text.encoding]::default);
- }
复制代码
作者: xczxczxcz 时间: 2019-1-26 08:55
建议到楼顶看下PS的用法。这样的东东用PS很方便的。- # PS 方法
- $n, $A = @(), (gc test.txt);
- $A|%{if($_ -match 'KRITISCHE'){$n+=$A.indexof($_)}};
- $($A[0..$n[4]] -notmatch '^\d+|-\s+\d+')|sc Test.log;
- cmd /c pause
复制代码
纯 P- @echo off & cd /d "%~dp0"
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('type test.txt') do (
- for /f "tokens=1-2* delims=. " %%a in ("%%i") do (
- if "%%b" equ "KRITISCHE" set /a n+=1
- if !n! lss 5 (
- if "%%b" neq "" if "%%a" neq "-" echo %%i
- ) else echo %%i & goto EXIT
- )
- ))>new.log
- :EXIT
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |