카테고리 없음

[끈] PowerShell에서 문자열의 마지막 섹션 삭제

행복을전해요 2021. 1. 25. 23:44

-replace와 함께 정규식 사용 :

$text = "Monkey/Zebra/Bird/Bird"

$text -replace '/[^/]+$'

Monkey/Zebra/Bird
-------------------

아마도 정규식도 사용할 수 있지만 분할을 사용하려면 다음을 수행하십시오.

("Monkey/Zebra/Bird/Bird" -split '/')[0..((("Monkey/Zebra/Bird/Bird" -split '/').count)-2)] -join '\'

나는 Perl을 좋아한다 ... errr Powershell

-------------------

다음과 같은 각 명령에 대해 사용할 수 있습니다.

$path = "Monkey/Zebra/Bird/Bird"
foreach($animal in $path.split("/"))
{
Write-Host $animal
}

그런 다음 경로를 분할하고 각 동물을 차례로 처리합니다.

-------------------

나는 RegEx가 아마도 당신의 가장 빠른 대답이라는 사실로 이것을 시작합니다. 그건 ...

예를 들어 "Monkey / Zebra / Bird / Bird"에서 중복 된 "bird"를 파싱했기 때문에 split을 사용하여 각 동물 중 하나만 가져 오는 또 다른 방법입니다.

$Animals = "Monkey/Zebra/Bird/Bird"

($Animals.Split('/')|Select -Unique) -join '/'  

또는 마지막 부분 만 삭제하고 싶다면 EBGreen이 제안한 것을 수행하고, 개별 동물로 분할하고, 개수를 세고, 마지막 부분을 제외하고 모두 반환 한 다음 다시 결합 할 수 있습니다.

($Animals.Split('/'))[0..($Animals.Split('/').count-2)] -join '/'

둘 중 하나가 반환 Monkey/Zebra/Bird되지만 후자의 옵션이 마음에 들면 EBGreen에 대한 답변을 지정하십시오.

-------------------
$path = "Monkey/Zebra/Bird/Bird"
$path -replace '/\w+$'
Monkey/Zebra/Bird


출처
https://stackoverflow.com/questions/22019893