powershell 从文本文件中检索字符串,并过滤出所需字段
前言:
在linux服务器上取得Java编译环境各文件夹下所有文件信息时,原文件信息太过繁杂,故简单写成以下脚本文件,提取相关信息。
代码如下:
## grep
#########################################
#检索文件所在路径
$findPath = "C:\wang\PowerShell\test\grep_csv\99L_aplication01.csv"
# 检索字符串
$findString = "/String1/String2/String3/"
#输出文件所在路径
$grepKekka = "C:\wang\PowerShell\test\grep_csv\grepKekka.csv"
$grepKekka1 = "C:\wang\PowerShell\test\grep_csv\grepKekka1.csv"
$grepKekka2 = "C:\wang\PowerShell\test\grep_csv\grepKekka2.csv"
$grepKekka3 = "C:\wang\PowerShell\test\grep_csv\grepKekka3.csv"
# 清空输出文件
Clear-Content $grepKekka -Force
Clear-Content $grepKekka1 -Force
Clear-Content $grepKekka2 -Force
Clear-Content $grepKekka3 -Force
# 检索关键字,输出到文件
$content = Get-Content $findPath | Select-String $findString
$content | where{$_ -ne ""} | Out-File -Width 5000 -FilePath $grepKekka1 -Append
#输出文件按逗号分割
Get-Content $grepKekka1 | ForEach-Object {
$Line = $_
if ($Line) {
$envVarArr = $Line.Split(",")
$i = $envVarArr.length
$envVarArr[$i - 1] >> $grepKekka2
} else {
# do nothing
}
}
#fullname文件全名取得
Get-Content $grepKekka2 | ForEach-Object {
$Line = $_
if ($Line -match '[.]') {
$Line >> $grepKekka
} else {
# do nothing
}
}
# "/" 分隔符 文件名取得
Get-Content $grepKekka | ForEach-Object {
$Line = $_
$envVarArr = $Line.Split("/")
$i = $envVarArr.length
$envVarArr[$i - 1] >> $grepKekka3
}
输入文件(99L_aplication01.csv):
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,fffffffff
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback1.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback2.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback3.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback4.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback5.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback6.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback7.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,fffffffff
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,
输出文件(grepKekka.csv):
/String1/String2/String3/ear/resources/logback1.xml
/String1/String2/String3/ear/resources/logback2.xml
/String1/String2/String3/ear/resources/logback3.xml
/String1/String2/String3/ear/resources/logback4.xml
/String1/String2/String3/ear/resources/logback5.xml
/String1/String2/String3/ear/resources/logback6.xml
/String1/String2/String3/ear/resources/logback7.xml
输出文件(grepKekka1.csv):
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback1.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback2.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback3.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback4.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback5.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback6.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback7.xml
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/
aaaaaaa,bbbbbbb,ccccc,ddddd,eeeee,,/String1/String2/String3/ear/resources/logback
输出文件(grepKekk2.csv):
/String1/String2/String3/ear/resources/logback1.xml
/String1/String2/String3/ear/resources/logback2.xml
/String1/String2/String3/ear/resources/logback3.xml
/String1/String2/String3/ear/resources/logback4.xml
/String1/String2/String3/ear/resources/logback5.xml
/String1/String2/String3/ear/resources/logback6.xml
/String1/String2/String3/ear/resources/logback7.xml
/String1/String2/String3/ear/
/String1/String2/String3/ear/resources/
/String1/String2/String3/ear/resources/logback
输出文件(grepKekka3.csv):
logback1.xml
logback2.xml
logback3.xml
logback4.xml
logback5.xml
logback6.xml
logback7.xml
总结:
在linux服务器上取得Java编译环境各文件夹下所有文件信息时,原文件信息太过繁杂,故简单写成以下脚本文件,提取相关信息。