2016-05-27 47 views
0

我是新在PowerShell中 我有一個包含OU路徑的文件分開的「/」 我想只保留每個字符串的2第一要素PowerShell的分裂只保留字符串的第2部分

例如:

paris/sales/salers/14tharrdt 

london/comptability/office1 

會給

paris/sales 

london/comptability 

我用Google搜索,發現了很多的東西,但是沒有辦法做到這一點簡單的事

感謝您的幫助

回答

2

你可以使用-split分裂的\字符的字符串,選擇前兩個元素並將它們連接在一起:

$content = Get-Content 'your_file_path' 
$content | foreach { 
    ($_ -split '/')[0, 1] -join '/' 
} 
$content | Set-Content 'your_file_path' 

或者,如果你喜歡使用regex這裏沒有分裂溶液(demo here):

$content = Get-Content 'your_file_path' 
$content | foreach { 
    $_ -replace '(.*?\/[^\/]+).*', '$1' 
} 
$content | Set-Content 'your_file_path' 
+0

我喜歡簡單的可擴展/可修改'($ _ -split'/ ')[0..1] -join'/'' – JosefZ

1

像:

$a = "paris/sales/salers/14tharrdt" 
$b = $a.Split("/")[0] + "/" + $a.Split("/")[1] 
$b 

改進是,如果調用分裂一次,並把它保存到一個變量

+0

沒有必要將其存儲在一個變量,因爲你可以做'$ a.Split( 「/」)[0 ,1] -join'/'';-) –

+0

是的,我很猶豫從你的答案中複製它:) –

+0

非常感謝大家的幫助 – kirgan