如何使用powershell从txt文件中删除前几个字
其中一个my host.txt文件显示了如下数据,我希望修剪后的最后一个单词存在 我该怎么做?有人能帮忙吗 |caa3ab95-ecad-46fe-9905-ceac58853ffc |测试-1-my_实例-25GHIKBPIP6| 我只需要“Test-1-my_instance-25ghikbbpip6”中的名称 我尝试了下面的方法,但根本不起作用如何使用powershell从txt文件中删除前几个字,powershell,Powershell,其中一个my host.txt文件显示了如下数据,我希望修剪后的最后一个单词存在 我该怎么做?有人能帮忙吗 |caa3ab95-ecad-46fe-9905-ceac58853ffc |测试-1-my_实例-25GHIKBPIP6| 我只需要“Test-1-my_instance-25ghikbbpip6”中的名称 我尝试了下面的方法,但根本不起作用 $hosts = Get-Content C:\host.txt foreach ($line in $hosts) { $sp
$hosts = Get-Content C:\host.txt
foreach ($line in $hosts)
{
$split1 = $line.trim("|")
$split2 = $split1.Split(",")[1]
echo $split2 >> C:\instance.txt
}
以下是:
$hosts = Get-Content "C:\host.txt"
foreach ($line in $hosts)
{
$split1 = $line.trim("|")
$split2 = $split1.Split("|")[1]
Write-Output $split2 >> "C:\instance.txt"
}
将给出以下输出:
Test-1-my_实例-25ghikbbpip6
例如:
PS C:\Windows\system32>
$hosts = Get-Content "C:\Users\me\Desktop\test.txt"
foreach ($line in $hosts)
{
$split1 = $line.trim("|")
$split2 = $split1.Split("|")[1]
Write-Output $split2 >> C:\instance.txt
}
PS C:\Windows\system32> Get-Content C:\instance.txt
Test-1-my_instance-25ghikbbpip6
你为什么不在
|
上分开呢?当字符串不包含逗号时,为什么要尝试在,
上拆分?在foreach循环中使用$line.split(“|”)[2]。为什么要修剪?没有意义,为什么保存到变量并写入输出?直接写到文件,以符合OP的编码风格,这样他就可以理解哪里出了问题。请随意发布一个替代的更简洁的解决方案供用户学习。谢谢。我只是想在我的文本文件| 6cb33d81-8e8e-4493-8702-a3927a4d3ab3 | bare-11-my|u instance-opsm5k6z6d6t | ACTIVE |-| Running | glcos01b private=10.100.11.1中的下面一行排序,10.231.224.31 |修剪后,我只想将IP地址10.231.224.31作为我的文本文件,但这并没有真正起作用。我在文本文件中获取IP,但也得到了一些错误$hostsraw=Get Content C:\hosts.txt foreach($line in$$hosts){$split1=$line.trim(“|”)$split2=$split1.Split(“|”)[1]$split3=$split2.Split(“,”[1]echo$split3>C:\ipaddress.txt}快速查看,您的($$hosts中的$line)
应该是($hosts中的$line)
但请继续,在“问题”页面上创建一个新问题,以便您可以正确设置问题的格式,包括预期结果和当前看到的内容,以及遇到的任何错误。