คำถามติดแท็ก string

การจัดการสตริง: การแยกส่วนของสตริงการแทนที่ข้อความการจัดรูปแบบความกว้างที่กำหนดเป็นต้น

3
การค้นหาสตริงย่อยแบบคำนึงถึงขนาดตัวพิมพ์ในเชลล์สคริปต์ [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันจะเขียนเชลล์สคริปต์ที่จะทำการจับคู่สตริงย่อยที่ไม่ตรงตามตัวพิมพ์เล็กและใหญ่ของเอาต์พุตคำสั่งได้อย่างไร?

8
วิธีใช้ grep และ cut in script เพื่อรับ URL เว็บไซต์จากไฟล์ HTML
ฉันกำลังพยายามใช้ grep และตัดเพื่อแยก URL จากไฟล์ HTML ลิงค์มีลักษณะดังนี้: <a href="http://examplewebsite.com/"> เว็บไซต์อื่น ๆ ที่มี.net, แต่ฉันคิดว่าฉันจะให้ตัดออกจากจุดที่เหมาะสมก่อน.gov >ดังนั้นฉันรู้ว่าฉันสามารถใช้ grep และตัดเพื่อตัดทุกอย่างก่อน http และหลัง. com แต่ฉันติดอยู่ในขณะนี้

6
วิธีการจับข้อผิดพลาดจากคำสั่งดำเนินการ?
ฉันได้รับมอบหมายให้สร้างสคริปต์การทำให้เซิร์ฟเวอร์แข็งโดยอัตโนมัติและสิ่งหนึ่งที่พวกเขาต้องการก็คือรายงานของเอาต์พุตทั้งหมดของแต่ละคำสั่งที่เรียกใช้งาน ฉันต้องการเก็บข้อความแสดงข้อผิดพลาดภายในสตริงและต่อท้ายในไฟล์ข้อความ สมมติว่าฉันรันคำสั่งนี้: /sbin/modprobe -n -v hfsplus ผลลัพธ์ของการทำงานในเครื่องของฉันจะเป็น: FATAL: Module hfsplus not found ฉันจะเก็บข้อความแสดงข้อผิดพลาดนั้นไว้ในสตริงได้อย่างไร? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ขอบคุณ!
20 bash  scripting  string 

2
เหตุใดสคริปต์นี้จึงทำงานในเทอร์มินัล แต่ไม่ใช่จากไฟล์
ฉันได้บันทึกเชลล์สคริปต์ไว้ในไฟล์แล้วมันจะทำการทดแทนสตริงพื้นฐาน #!/bin/sh html_file=$1 echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" ถ้าฉันวางลงในบรรทัดคำสั่งก็ใช้งานได้: $ html_file="/home/max/for_pauld/test_no_base64.html" echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" จะช่วยให้ html_file = /home/max/for_pauld/test_no_base64.html pdf_file = /home/max/for_pauld/test_no_base64.pdf นั่นเป็นผลลัพธ์จากเสียงสะท้อนด้านบน - มันทำงานได้ตามที่ตั้งใจไว้ แต่เมื่อฉันเรียกสคริปต์ด้วย $ saucer "/home/max/for_pauld/test_no_base64.html" ฉันได้ผลลัพธ์นี้: html_file = /home/max/for_pauld/test_no_base64.html /home/max/bin/saucer: 5: /home/max/bin/saucer: Bad substitution สคริปต์ของฉันใช้ …
19 bash  string 

4
วิธีการแตกสตริงที่ยาวเป็นหลายบรรทัดในพร้อมต์ read -p ภายในซอร์สโค้ด?
/bin/shฉันจะเขียนสคริปต์การติดตั้งที่จะใช้เป็น มีบรรทัดแจ้งให้ไฟล์: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY ฉันต้องการแบ่งบรรทัดยาวเป็นหลายบรรทัดเพื่อไม่ให้มีเกิน 80 อักขระ ฉันกำลังพูดถึงบรรทัดภายในซอร์สโค้ดของสคริปต์ ไม่เกี่ยวกับบรรทัดที่จะพิมพ์จริงบนหน้าจอเมื่อสคริปต์ถูกดำเนินการ! สิ่งที่ฉันได้ลอง: วิธีการเริ่ม: read -p "goat can try change directory if cd fails to do so. " \ "Would you like …

2
มีบางอย่างเช่น "แยก ()" ของ JavaScript ในเปลือกหรือไม่
มันใช้งานง่ายมากsplit()ใน JavaScript เพื่อแยกสตริงออกเป็นอาร์เรย์ เชลล์สคริปต์เป็นอย่างไร พูดว่าฉันต้องการทำสิ่งนี้: $ script.sh var1_var2_var3 เมื่อผู้ใช้ให้สตริงดังกล่าวvar1_var2_var3กับ script.sh ภายในสคริปต์มันจะแปลงสตริงเป็นอาร์เรย์เช่น array=( var1 var2 var3 ) for name in ${array[@]}; do # some code done

4
วิธีที่สั้นที่สุดในการแทนที่อักขระในตัวแปร
มีหลายวิธีในการแทนที่อักขระในตัวแปร วิธีที่สั้นที่สุดที่ฉันค้นพบคือtr: OUTPUT=a\'b\"c\`d_123and_a_lot_more OUTPUT=$(echo "$OUTPUT"|tr -d "'\`\"") echo $OUTPUT มีวิธีที่เร็วกว่านี้ไหม และนี่คือข้อความที่ปลอดภัยสำหรับคำพูดเช่น', "และ `ตัวเอง?
18 bash  string  variable 

3
วิธีเลื่อนการขยายตัวแปร
ฉันต้องการเริ่มต้นสตริงที่ด้านบนสุดของสคริปต์ด้วยตัวแปรที่ยังไม่ได้ตั้งค่าเช่น: str1='I went to ${PLACE} and saw ${EVENT}' str2='If you do ${ACTION} you will ${RESULT}' และจากนั้นในภายหลังPLACE, EVENT, ACTIONและRESULTจะเป็นชุด ฉันต้องการที่จะสามารถพิมพ์สตริงของฉันออกมาพร้อมกับตัวแปรที่ขยาย ตัวเลือกเดียวของฉันคือevalอะไร? ดูเหมือนว่าจะใช้งานได้: eval "echo ${str1}" มาตรฐานนี้หรือไม่ มีวิธีที่ดีกว่าในการทำเช่นนี้? มันจะดีถ้าไม่ทำงานevalเพราะตัวแปรอาจเป็นอะไรก็ได้
18 bash  shell  string 


2
แยกสตริงตามรูปแบบในสคริปต์ทุบตี
ในทุบตีสมมติว่าฉันมีสตริงstrname: strname="ph7go04325r" ฉันต้องการที่จะดึงตัวละครระหว่างครั้งแรก "3"ของตัวละครและสุดท้าย "r"ตัวละครในการประหยัดผลในสตริงstrname strresultในตัวอย่างข้างต้นผลลัพธ์strresultจะเป็น: strresult="25" "3"อักขระตัวแรกไม่จำเป็นต้องอยู่ที่ตำแหน่งสตริง 8 ในstrname; เช่นเดียวกันที่ผ่านมา"r"คือไม่จำเป็นต้องที่ตำแหน่งสตริง 11. ดังนั้นทั้งสองสายดังต่อไปนี้strnameควรผลผลิตstrresult="25": strname="ph11go04325raa" strname="325r" strname="rgo04325raa" นอกจากนี้ควรผลผลิตstrname=ph12go04330raa"strresult="30" ฉันยังใหม่กับการเขียนสคริปต์ทุบตีและฉันไม่รู้ว่าจะเริ่มจับคู่รูปแบบสตริงได้อย่างไร คุณมีข้อเสนอแนะใด?

3
วิธีการตัดเครื่องหมายทับสุดท้ายของเส้นทางไดเรกทอรี?
ฉันมีสคริปต์ที่ต้องการไดเรกทอรีเป็นหนึ่งอาร์กิวเมนต์ ฉันต้องการที่จะสนับสนุนทั้งสองรูปแบบ: หนึ่งเหมือน a/b/c (ไม่มีฟันแทงตอนท้าย) และอีกอันก็เหมือน a/b/c/ (มีเครื่องหมายทับที่ท้าย) คำถามของฉัน: ด้วยรูปแบบใดรูปแบบหนึ่งทั้งสองฉันจะเปลี่ยนรูปแบบแรกให้เป็นแบบเดิมได้อย่างไรและตัดเครื่องหมายสแลชสุดท้ายของรูปแบบที่สองเพื่อแปลงเป็นรูปแบบแรก

3
bash รองรับการอ้างอิงกลับในการขยายพารามิเตอร์หรือไม่
ฉันมีชื่อตัวแปรdescrซึ่งสามารถมีสตริงBlah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Fooฯลฯ ฉันต้องการที่จะได้รับ-> r1-ae0-2, -> s7-Gi0-0-1:1-USส่วนหนึ่งมาจากสตริง ในขณะนี้ฉันใช้descr=$(grep -oP '\->\s*\S+' <<< "$descr"สำหรับสิ่งนี้ มีวิธีที่ดีกว่าในการทำเช่นนี้? เป็นไปได้ไหมที่จะทำเช่นนี้กับการขยายพารามิเตอร์

5
สร้างดัชนีสตริงใน bash
ฉันจะอ้างถึงสตริงตามดัชนีใน sh / bash ได้อย่างไร? นั่นคือโดยทั่วไปมันแยก ฉันพยายามตัดชื่อไฟล์ 5 ตัวอักษร ชื่อทั้งหมดมีโครงสร้าง: name_nr_code ฉันกำลังพยายามลบบิตรหัสตัวอักษรและตัวเลข 5 ตัว name_nr_มีความยาว 10 อักขระเสมอ มีสิ่งที่ชอบ; for i in * ; do mv "$i" "$i"[:10] ; done
15 bash  shell  string 


4
รับชุดค่าผสมที่เป็นไปได้ทั้งหมดของคำด้วยตัวอักษรตัวพิมพ์เล็ก / ตัวพิมพ์ใหญ่
ฉันต้องการเขียนสคริปต์ทุบตีเพื่อพิมพ์วิธีเรียงสับเปลี่ยนตัวพิมพ์เล็กและใหญ่ที่เป็นไปได้ทั้งหมดเช่นฮาร์เลย์: harley harleY harlEy harLey ... HARLey HARLEy HARLEY โซลูชันไร้เดียงสาของฉันคือการเขียน n-th (n คือ len (คำ)) ซ้อนสำหรับลูปสำหรับคำเฉพาะนี้: #!/bin/bash for a in {h,H}; do for b in {a,A}; do ... done done อย่างไรก็ตามฉันจะต้องเขียนโค้ดสำหรับคำอื่นอีกครั้ง มีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้หรือไม่?
14 bash  string 

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