Powershell อักษรตัวแรกของคำ


-1

หากฉันมีไฟล์ที่มีข้อความใด ๆ ฉันจะพิมพ์เฉพาะอักษรตัวแรกของแต่ละคำจากไฟล์แล้วพิมพ์เสียงสระทั้งหมดด้วยตัวพิมพ์ใหญ่ได้อย่างไร


โปรดทราบว่าsuperuser.comไม่ใช่บริการเขียนสคริปต์ / รหัสฟรี หากคุณบอกเราถึงสิ่งที่คุณได้ลองมาแล้ว (รวมถึงสคริปต์ / รหัสที่คุณใช้อยู่) และที่ที่คุณติดอยู่เราสามารถลองช่วยแก้ปัญหาเฉพาะได้ คุณควรอ่านฉันจะถามคำถามที่ดีได้อย่างไร .
DavidPostill

ฉันพยายามทำ แต่ล้มเหลวและค้นคว้าเป็นจำนวนมาก ฉันเลือกข้อความแบบสุ่มและวางในไฟล์ข้อความตอนนี้ต้องการพิมพ์ตัวอักษรตัวแรกของแต่ละคำ แต่ไม่สามารถ $ poem = "มันแปลกที่วินาทีสั้น ๆ จะพาคุณไปในทิศทางใหม่ทั้งหมดมันเปลี่ยนวิธีที่คุณคิดและกระทำและเห็นภาพสะท้อนของคุณเองจากช่วงเวลาหนึ่งชีวิตของฉันก็เปลี่ยนไปตลอดกาลเหมือนทุกสิ่งที่ฉันรู้มาก่อนหน้านี้ ทันใดนั้นก็มีการจัดเรียงใหม่ $ poem | ออกไฟล์ "C: \ users \ Poem.txt" นี่คือไฟล์และฉันต้องการพิมพ์ตัวอักษรตัวแรกของแต่ละคำ
Roma Francis

คำตอบ:


0

ฉันเดาว่านี่อาจเป็นเรื่องยุ่งยากเล็กน้อยสำหรับผู้เริ่มต้น PowerShell

$poem = Get-Content "C:\somewhere\poem.txt"
$x = (($poem.Split(' ') | % { $_[0] }) -join "").ToUpper()

เอาท์พุท:

PS C:\Users\xy> $x
ISHAFSSCLYIAWNDIAHYTAAASYORFASMOMLWFCLEIPKHSBR

คำอธิบาย:

  • $poem.split(" ")แบ่ง$poemสตริงทั้งหมดในแต่ละบังคับและสร้างวัตถุสำหรับแต่ละคำ
  • | %นามแฝงForEachใช้ทุกวัตถุและดำเนินการ scriptblock {}สำหรับแต่ละวัตถุ
  • $_[0] เลือกอักษรตัวแรกของวัตถุปัจจุบัน

ตอนนี้จะส่งคืนอาร์เรย์ของวัตถุแทนที่จะเป็นสตริงธรรมดา

  • -join ""ใส่วัตถุเหล่านั้นเข้าด้วยกันเป็นสตริง ค่าภายใน""กำหนดสิ่งที่เขียนระหว่างแต่ละวัตถุในกรณีของเราไม่มีอะไร

  • .ToUpper() เป็นวิธีการสตริงที่จะทำให้ทุกตัวอักษรเป็นตัวพิมพ์ใหญ่


0

ฉันจะได้แสดงความคิดเห็น แต่ก็ยังไม่พอใจ ส่วนเสียงสระหายไป ฉันผ่านชุดแรกไปแล้ว - ชุด แต่ชุด - 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

โอ้ฉันคิดถึงส่วน "สระ" ขอบคุณสำหรับการแก้ไข
SimonS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.