Если у меня есть файл, содержащий любой текст, как я могу распечатать только первую букву каждого слова из файла и напечатать все гласные буквы?
Powershell первая буква слова
24
2 ответа
Я думаю, это может быть немного сложно для PowerShell стартера.
$poem = Get-Content "C:\somewhere\poem.txt"
$x = (($poem.Split(' ') | % { $_[0] }) -join "").ToUpper()
выход:
PS C:\Users\xy> $x
ISHAFSSCLYIAWNDIAHYTAAASYORFASMOMLWFCLEIPKHSBR
объяснение:
$poem.split(" ")
ломает всю$poem
строку на каждом поводке и создает объект для каждого слова.| %
псевдонимForEach
принимает каждый объект и выполняет сценария{}
для каждого объекта.$_[0]
выбирает первую букву текущего объекта
этот теперь возвращает массив объектов вместо одной простой строки.
-join ""
помещает эти объекты в строку. значение внутри""
определяет, что написано между каждым объектом, в нашем случае ничего..ToUpper()
метод для строк, которые сделают каждую букву в букву.
0
отвечен SimonS 2023-05-08 04:50
Я бы прокомментировал, но все еще не enaugh rep. Гласная отсутствовала. Я наткнулся сначала на массив-contains, но a-cmatch проще. То же самое стихотворение возвращается сюда:
$poem = Get-Content ".\cwItc.txt"
$x = (($poem.Split(' ') | % {
If ($_[0] -cmatch "[aeiou]") {$_[0].ToUpper} else {$_[0]}
} ) -join "" )
$x
> .\FirstLetterVow2up.ps1
IshfssclywndIhytsyrFsmmlwfcLIpkhsbrNwjhIftdBdwtpIsttcIcbttrpIkItsthtIwtIwpt
whrcsAtAMwnswltdSIwcnpwtWIdwtmfIttfbmwhhbIwlcthtppMmfwchfwlHtpmwtTlpgddmfIp
hswfldHctlvstlmHwwbhwhmpSttnsssIwcbvdlsprTgmldmptmbsIctsscbwrsfWttdhmwfdHwd
wvcIbftpshbAttthdlmSlnIscfsThmnlmtkWsctwpnImgrtcbnrImhtssgbmncBIktttdshwImh
tpthsmttsAhcmdttcImhtkhbtcwcIhftwptglIcctptwIsBIcftpcwtcWsdysmtsEswwkpEhttw
ntrIlsrmfStllftkDdwsbmtbTddnjtrFwdhtwwcrtbSh
0
отвечен LotPings 2023-05-08 07:07
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]