在文本文件

时间:2016-07-15 15:00:43

标签: powershell

我正在尝试在字符串中交换两个单词。我目前有一个txt文件,其中包含一列格式为last.first的用户。如何将其交换为first.last

3 个答案:

答案 0 :(得分:2)

-split字符串并连接:

$Last,$First = "Lastname.Firstname" -split '\.'
$newString = "$First.$Last"

或使用-replace对两者重新排序:

"Lastname.Firstname" -replace '(\w+)\.(\w+)','$2.$1'

答案 1 :(得分:2)

gc .\names.txt |% { "{1}.{0}" -f $_.split('.') }
  • 使用gcGet-Content
  • 的别名从文件中取出行
  • 使用%ForEach-Object
  • 的别名循环遍历它们
  • Split()每行围绕句号,进入两个项目的数组
  • 使用"" -f string formatting运算符构建一个字符串,该字符串按顺序1,0中的数组项进行交换,以交换部件的顺序。

答案 2 :(得分:1)

快速而肮脏 - 最小的错误检查......

Get-Content .\test.txt | 
  ForEach-Object {  
    if  ( $_.Contains('.') ) {
      $_.Split('.')[1] + '.' + $_.Split('.')[0]  } 
    else { $_ } 
  }