如何使用 Powershell 在 txt 文件中查找特定文本
How to find a specific text in a txt file using Powershell
我有一个 .txt
文件,其中列出了一些用户名。
喜欢:
User1
User2
User3
我还有一个 .txt
文件,其中包含一些相同的用户名,以及其他信息:
User1 - user1@txt.com - 12341515 - yes
User2 - user2@txt.com - 13134141 - no
如何从第一个文件开始搜索,第二个文件中搜索用户,然后将第二个文件的完整行输出到一个新的txt文件中。
我试过了,Get-content
和|where-object
,但我不知道如何准确搜索。
文件没有 header。
更新
file1,我要找的用户在哪里是这样的
u16096
原文件2,所有用户信息都是这个顺序
u16096 Y NAME SURNAME name.surname@what.com 12345678
我就是这样做的。评论中的解释。我无法准确测试它,我没有您的原始文件,但它应该可以帮助您入门。
# store the values of the 2nd text file in a lookup-map
$userInfos = @{}
Get-Content "file2.txt" | foreach {
# use the username as lookup key
$username = $_ -replace '^(\S+).*', ''
$userInfos[$username] = $_
}
# iterate the 1st file, lookup the user infos, and output to 3rd file
Get-Content "file1.txt" | foreach {
$userInfos[$_]
} | Out-File "file3.txt"
我有一个 .txt
文件,其中列出了一些用户名。
喜欢:
User1
User2
User3
我还有一个 .txt
文件,其中包含一些相同的用户名,以及其他信息:
User1 - user1@txt.com - 12341515 - yes
User2 - user2@txt.com - 13134141 - no
如何从第一个文件开始搜索,第二个文件中搜索用户,然后将第二个文件的完整行输出到一个新的txt文件中。
我试过了,Get-content
和|where-object
,但我不知道如何准确搜索。
文件没有 header。
更新
file1,我要找的用户在哪里是这样的
u16096
原文件2,所有用户信息都是这个顺序
u16096 Y NAME SURNAME name.surname@what.com 12345678
我就是这样做的。评论中的解释。我无法准确测试它,我没有您的原始文件,但它应该可以帮助您入门。
# store the values of the 2nd text file in a lookup-map
$userInfos = @{}
Get-Content "file2.txt" | foreach {
# use the username as lookup key
$username = $_ -replace '^(\S+).*', ''
$userInfos[$username] = $_
}
# iterate the 1st file, lookup the user infos, and output to 3rd file
Get-Content "file1.txt" | foreach {
$userInfos[$_]
} | Out-File "file3.txt"