Powershell первая буква слова

Если у меня есть файл, содержащий любой текст, как я могу распечатать только первую букву каждого слова из файла и напечатать все гласные буквы?

24
задан 3498DB
06.05.2023 21:02 Количество просмотров материала 2386
Распечатать страницу

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-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх