ฉันพยายามตั้งค่าตัวแปรในสคริปต์ sh เป็น 3 ตัวอักษรสุดท้ายของชื่อฐานของไฟล์ (โดยชื่อฐานฉันหมายถึงไม่มีเส้นทางและไม่มีคำต่อท้าย) ฉันประสบความสำเร็จในการทำสิ่งนี้ แต่ด้วยความอยากรู้อยากเห็นอย่างหมดจดฉันสงสัยว่ามีคำสั่งสั้นเพียงคำเดียวที่ฉันสามารถใช้ได้ เดิมทีฉันมีซับในด้วยawk
แต่มันค่อนข้างยาว ขณะนี้ฉันมีสคริปต์สองบรรทัดนี้ (สมมติว่ามีชื่อไฟล์ที่สมบูรณ์อยู่$1
):
filebase=`basename "$1"`
lastpart=`echo -n ${filebase%.*} | tail -c3`
ดังนั้นสำหรับตัวอย่างเช่น"/path/to/somefile.txt"จบลงด้วย"ile"$lastpart
ใน
ฉันสามารถรวมbasename
และบิตเพื่อตัดส่วนต่อท้ายเป็นคำสั่งเดียวได้หรือไม่และมีวิธีส่งไปยังtail
(หรืออย่างอื่นที่ฉันสามารถใช้ได้) โดยไม่ต้องใช้ไพพ์หรือไม่? ไม่รู้จักคำต่อท้ายดังนั้นฉันไม่สามารถยึดเป็นพารามิเตอร์basename
ได้
เป้าหมายหลักนั้นไม่สั้นมากเท่าที่จะเป็นไปได้ บริบทที่แท้จริงของทั้งหมดนี้คือคำถามเกี่ยวกับ Superuserที่ฉันพยายามหาคำตอบที่เรียบง่ายพอสมควร
two
จะทำงานได้; ส่วนขยายที่.three
ฉันคาดเดา
file.one.two.three
อย่างไร? คุณต้องการile
หรือtwo
?