批处理把每行中等于8个字符的字符串提取出来
假设 a.txt 文本有多行,把每行中等于8个字符的字符串提取出来,其他行过滤掉。示例文本 a.txt[code]12345678 abc cde
批处理之家
一二三四五六七八 abcdefgh
新手练功区欢迎大家[/code] 如果是出题帖,建议在标题中明确写清楚,以免引起不必要的误会,望楼主理解。
回复 1楼 的帖子
请问一行中只有一个字符串,还是可以有多个字符串呢?例如:12345678 abcdefgh 1254 iiuessss
这样可以吗??
写个试试
[code]@echo offsetlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (set str=%%a&if "!str:~7,1!" neq "" if "!str:~8,1!" equ "" echo %%a)
pause>nul[/code] @echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (a.txt) do (
set y=false
for %%j in (%%i) do (
set t=%%j
if "!y!" equ "false" if "!t:~7,1!" neq "" if "!t:~8,1!"=="" set y=true&echo %%j
)
)
pause [code]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (a.txt) do (
set y=false
for %%j in (%%i) do (
set t=%%j
if "!y!" equ "false" if "!t:~7,1!" neq "" if "!t:~8,1!"=="" set y=true&echo %%j
)
)
pause
[/code] [code]"""
python3
2016年4月27日 16:50:03 codegay
"""
with open("a.txt") as f:
[print(x) for r in f for x in r.split() if len(x)==8]
[/code] [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=185453&ptid=4823]6#[/url] [i]chencg[/i] [/b][code]:On Error Resume Next
set fso=CreateObject("scripting.filesystemobject")
:Sub bat
echo off&cls
cscript -nologo -e:vbs "%0"
pause
Exit Sub
:End Sub
set RegExp=new RegExp:set stdin=wscript.stdin
RegExp.IgnoreCase=true:RegExp.Global=-1
file="1.txt"
RegExp.Pattern="\b.{8}\b"
var=fso.opentextfile(file).readall
set matches=RegExp.Execute(var)
for each match in matches
wsh.echo match
next[/code] [code]$file=1.txt
get-content $file|foreach{
foreach ($s in $_.split()) {
if ($s.length -eq 8) {$s}
}
}[/code]powershell @echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
for %%j in (%%i) do (
set t=%%j
if "!t:~7,1!" neq "" if "!t:~8,1!"=="" echo %%j
)
)
pause @echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set line=%%i
for %%j in (!line!) do (
set column=%%j
set cln8=!column:~7,1!
set cln9=!column:~8,1!
if defined cln8 (
if not defined cln9 echo %%j
)
)
)
pause
页:
[1]