0

我有一个如下的文本文件内容,


     123    123   123   123   123   Exchange

我想要最后一个词“ Exchange ”,需要powershell中的解决方案。请帮我。

注意:文件开头是TAB,中间也是Character。

谢谢,拉姆

4

3 回答 3

3

拆分行,如果存在则删除空条目,并获取最后一个元素:

$content= Get-Content file.txt
$content.Split("`t",[System.StringSplitOptions]::RemoveEmptyEntries)[-1]
于 2013-04-25T08:18:18.720 回答
2

此函数将采用文本文件路径并返回文本文件最后一行的最后一个单词。它将忽略文本文件中可能存在的任何空行。

Function Get-Last-Word($path){ 
    $file = (Get-Content $path | Measure-Object)
    $numberOfLines = $file.Count
    $numberOfWords = (Get-Content $path | Select -Index ($numberOfLines -1) | Measure-Object -word)
    $Line = Get-Content $path | Select -Index ($numberOfLines -1)
    $wordArray = $Line.Split("`t")
    $wordArray[($numberOfWords.Words - 1)]
}

例子: Get-Last-Word "C:\Myfolder\MyTextfile.txt"

于 2013-04-25T09:20:58.583 回答
1

这个单线怎么样:

[Regex]::Match((Get-Content .\file_name.txt) -Join ' ', '(\w+)[^\w]*$').Groups[1].Value

不确定您在 Powershell v1 上是否有 -Join,如果有,那么:

$t = '';Get-Content .\file_name.txt | % {$t += " $_"};[Regex]::Match($t, '(\w+)[^\w]*$').Groups[1].Value
于 2013-04-25T13:22:37.550 回答