Score:-2

แนะนำบรรทัดว่างระหว่างส่วนที่ตรงกัน

ธง jp

ฉันมีฟังก์ชันทุบตีต่อไปนี้ที่ใช้ เสด เพื่อแยกส่วนที่เกิดขึ้นระหว่าง ## โหมด: org และ ## # จบ org, ที่ไหน # เป็นตัวแสดงความคิดเห็น ในที่สุดฉันก็ลบอักขระความคิดเห็นและช่องว่างใดๆ

นี่คืออินพุตของฉัน

แมว /home/flora/docs/recnotes.txt
   ## โหมด: org
   # กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
   #  ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
   # อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
   # คำนำหน้า `-'
   ## # จบ org

     ;; โหมด: org
     ; กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
     ; ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
     ; อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
     ; คำนำหน้า `-'
     ;; #จุดจบขององค์กร
 
       @c โหมด: org
       @c กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
       @c ตัวเลือก ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
       อาร์กิวเมนต์ @c ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
       @c คำนำหน้า `-'
       @c# จบ org

นี่คือฟังก์ชั่นทุบตีที่มีการนำไปใช้ใน เสด.

การจับกุม ()
{
 efile ท้องถิ่น = "$1"

 ชาร์โคล เบกอร์ก เอนดอร์กในท้องถิ่น

 charcl_ere='^[[:space:]]*([#;!]+|@c|\/\/)[[:space:]]*'
 charcl_bre='^[[:ช่องว่าง:]]*\([#;!]\+\|@c\|\/\/\)[[:ช่องว่าง:]]]*'

 begorg="${charcl_bre}"'โหมด: org$'
 endorg="${charcl_bre}"'# จุดสิ้นสุดของ org$'

 mdr='^โหมด: org$' ; edr='^# จุดสิ้นสุดของ org$'

 sed -n "/$begorg/,/$endorg/ s/$charcl_bre//p" "$efile" |
  sed "/$mdr\|$edr/d"
}

เดิมฉันมีสองคำสั่งเป็น

begorg='${charcl_bre}โหมด: org$'
endorg='${charcl_bre}# จุดสิ้นสุดของ org$'

ที่ไม่ได้ขยายตัวแปร charcl_bre.

ผลลัพธ์คือ

กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'
กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'
กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'

สิ่งที่ฉันต้องการทำคือมีบรรทัดว่างระหว่างส่วน

Artur Meinild avatar
vn flag
คำถามอะไรอีกแล้ว? โปรดตรวจสอบให้แน่ใจว่าคำถามของคุณชัดเจนและชัดเจน
pLumo avatar
in flag
ตัวแปรจะไม่ขยายในเครื่องหมายคำพูดเดี่ยว
pLumo avatar
in flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะใช้ตัวแปรในคำสั่ง sed ได้อย่างไร](https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-command)
Score:0
ธง ca

ตามที่คุณ แก้ไขล่าสุดคุณเพียงแค่ต้องมีบรรทัดว่างระหว่างส่วนความคิดเห็นต่างๆ คุณสามารถทำได้โดยเปลี่ยนครั้งสุดท้าย เสด คำสั่งจาก:

sed "/$mdr\|$edr/d"

ถึง:

sed "/$mdr/d; s/$edr//"

สิ่งนี้เปลี่ยน เสด คำสั่งจากการลบทั้งสอง $mdr และ $เอ็ด บรรทัดเพื่อลบเท่านั้น $mdr บรรทัดและแทนที่ $เอ็ด บรรทัดด้วยสตริงว่าง รักษาบรรทัดว่างที่คุณต้องการได้อย่างมีประสิทธิภาพ

ผลลัพธ์คือ:

กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'

กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'

กำหนดพารามิเตอร์ตำแหน่งเชลล์หรือเปลี่ยนค่าของเชลล์
ตัวเลือก. ตัวเลือก -- กำหนดพารามิเตอร์ตำแหน่งให้กับ
อาร์กิวเมนต์ของ {set} แม้ว่าบางอาร์กิวเมนต์จะขึ้นต้นด้วยตัวเลือกก็ตาม
คำนำหน้า `-'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา