Score:4

ฉันจะสร้างตาราง Markdown ของสองคอลัมน์จากรายการที่มีรายการสลับกันในแต่ละคอลัมน์ได้อย่างไร

ธง cn

ฉันมีรายการคำย่อทั่วไปจำนวนมากสำหรับคำในชื่อวารสาร ในรายการ คำเต็มจะตามด้วยตัวย่อ ตัวอย่างเช่น:

  • การบริหาร
  • ผู้ดูแลระบบ
  • สมัครแล้ว
  • แอป
  • ธุรการ
  • ผู้ดูแลระบบ
  • ประมาณ
  • ประมาณ

ฉันต้องการเปลี่ยนรายการเป็นตาราง Markdown เช่นนี้

คำ ตัวย่อ
การบริหาร ผู้ดูแลระบบ
สมัครแล้ว แอป

ปัญหาคือการทำด้วยมือจะใช้เวลาตลอดไป ดังนั้นฉันกำลังมองหาวิธีที่จะทำให้เร็วขึ้น ถ้าช่วยได้ แบบฟอร์มย่อทั้งหมดจะลงท้ายด้วยจุด (.)

ฉันได้ดูออนไลน์ แต่ไม่พบสิ่งใดสำหรับสิ่งนี้ นั่นเป็นเหตุผลที่ฉันถามที่นี่ ความช่วยเหลือใด ๆ ?

Score:5
ธง zw

สมมติว่าเรามีไฟล์อินพุตพร้อมรายการจากคำถามของคุณ เราสามารถเติมได้โดยใช้คำสั่งด้านล่าง:

แมว <<EOF > word+abbrs.txt
การบริหาร
ผู้ดูแลระบบ
สมัครแล้ว
แอป
ธุรการ
ผู้ดูแลระบบ
ประมาณ
ประมาณ
อฟ

การสร้างตาราง Markdown สามารถทำได้บน Ubuntu โดยใช้สคริปต์อย่างง่ายดังที่แสดงด้านล่าง:

  • วิธีโง่ทีละขั้นตอน

    #เขียนหัวตาราง
    echo "**Word** | **ตัวย่อ**" > table.md
    echo "- | -" >> table.md
    
    # แยกบรรทัดคี่เป็นคำเพื่อไฟล์ word.txt
    awk 'NR%2==1' word+abbrs.txt > words.txt
    # แยกบรรทัดที่เป็นตัวย่อไปยังไฟล์ abbrs.txt
    awk 'NR%2==0' word+abbrs.txt > abbrs.txt
    
    # รวมคอลัมน์จาก word.txt และ abbrs.txt ด้วย '|' ตัวคั่น
    วาง -d '|' word.txt abbrs.txt >> table.md
    
  • วิธีซับในอันชาญฉลาด (ขอบคุณ @steeldriver)

    { printf '%s\n' '**Word** | **ตัวย่อ**' '-|-'; วาง -d '|' - - < คำ+abbrs.txt; } > table.md
    

คุณจะได้รับไฟล์ Markdown ที่มีเนื้อหาดังต่อไปนี้:

$ ตารางแมว.md 
**คำ** | **อักษรย่อ**
- | -
ธุรการ|ธุรการ
นำไปใช้|Appl.
ธุรการ|ธุรการ.
ประมาณ | ประมาณ

ดังนั้นมันจะแสดงผลเป็น HTML เป็น

คำ ตัวย่อ
การบริหาร ผู้ดูแลระบบ
สมัครแล้ว แอป
ธุรการ ผู้ดูแลระบบ
ประมาณ ประมาณ

ข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือที่ใช้:

hr flag
คุณไม่สามารถหลีกเลี่ยง awks และไฟล์ระดับกลางได้ที่นี่ใช่ไหม อดีต. `{ printf '%s\n' '**Word**|**ตัวย่อ**' '-|-'; วาง -d '|' - -
N0rbert avatar
zw flag
@steeldriver ขอบคุณ เพิ่ม คุณช่วยแนะนำวิธีการหรือหนังสือออนไลน์ที่ครอบคลุม AWK และ Bash ที่ดีให้ฉันได้ไหม
hr flag
ฉันมักจะพบว่าตัวเองกำลังอ้างอิงถึง [คู่มือผู้ใช้ Awk ของ GNU](https://www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents) สำหรับเนื้อหา awk (การไฮไลต์ก็ค่อนข้างดี โดยที่ gawk แตกต่างจากการใช้งานอื่น ๆ ) สำหรับตัว bash ฉันไม่แน่ใจจริงๆ - ฉันชอบ [BashGuide](https://mywiki.wooledge.org/BashGuide) - เห็นได้ชัดว่า man page นั้นครอบคลุม แต่ฉันพบว่ามันยากที่จะนำทาง
N0rbert avatar
zw flag
ขอบคุณ เพิ่มทั้งสองหน้าในบุ๊กมาร์ก https://tldp.org/LDP/abs/html/abs-guide.html ก็ดูดีเช่นกัน
Score:3
ธง us

หากคุณใช้ Pandoc ได้ ก็สามารถแปลงจาก CSV เป็น Markdown ได้สมมติว่าคุณมีไฟล์คำหนึ่งคำต่อหนึ่งบรรทัด ในคำตอบของ N0rbertคุณสามารถแปลงเป็น CSV โดยใช้ วาง -d, - -แล้วส่งไปที่ Pandoc:

% (printf "%s\n" คำย่อ; cat ไฟล์อินพุต) | วาง -d, - - | pandoc -f csv -t markdown_phpextra
| คำ | อักษรย่อ |
|----------------|------------------------|
| การบริหาร | ผู้ดูแลระบบ |
| นำไปใช้ | แอป |
| แอดมิน | ผู้ดูแลระบบ |
| ประมาณ | ประมาณ |

ให้:

คำ ตัวย่อ
การบริหาร ผู้ดูแลระบบ
สมัครแล้ว แอป
ธุรการ ผู้ดูแลระบบ
ประมาณ ประมาณ

(อาจไม่จำเป็นต้องจัดรูปแบบเพิ่มเติมของส่วนหัว เนื่องจากส่วนหัวของตารางมักมีรูปแบบแตกต่างกัน)

โพสต์คำตอบ

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