powershell - 查找文件和输出
问题描述
源文件如下所示:
发货前;1234567 交付后;7654321
查找文件:
1234567;一 7654321;乙
输出应该是:
交货前;A 交货后;B
解决方案
10分钟搞定..
没有很好优化的解决方案
- 它为查找文件中找到的每一行读取整个文件
#https://stackoverflow.com/questions/54087831/lookup-on-file-and-output
#inspired by https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell
<#
source file
Pre-delivery;1234567
Post-delivery;7654321
lookup file
1234567;A
7654321;B
result
Pre-delivery;A
Post-delivery;B
#>
$sourceFile=".\foosource.txt"
$lookup=".\foolookup.txt"
# read lookup file line by line
foreach($lineLookup in Get-Content $lookup) {
#read source data file line per line
foreach($line in Get-Content $sourceFile) {
#prepare variables
$splitLookup=$lineLookup.Split(";")
$splitSource=$line.Split(";")
#if equals
if($splitLookup[0] -eq $splitSource[1]){
#print in the given format
$result = $splitSource[0].Trim()+";"+$splitLookup[1].Trim()
Write-Host $result
}
}
}
推荐阅读
- node.js - 如何将 Powershell 命令添加到 NPM 脚本?
- c# - 频道主动消息提醒
- javascript - 我怎样才能只留下 bootstrap.bundle.min.js 中需要的部分代码
- spring - 登录不适用于 UserDetailsService 和自定义登录
- php - 如何使用在 IIS 中运行的 PHP 访问映射的网络驱动器
- c# - 如何解决“无法解析类型'Microsoft.AspNetCore.Identity.UserManager的服务”?
- laravel - laravel 使用 RSA 公钥加密 AES 密钥
- arrays - 对数组的特定列进行计算
- neo4j - 识别与 Cypher Neo47 有 2 个或更多关系的节点
- typescript - 打字稿设置类型取决于值