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

รูปแบบการสแกนและการประมวลผลภาษา

2
สคริปต์เพื่อทดสอบแป้นคีย์บอร์ดอย่างรวดเร็วทั้งหมด
ฉันต้องตรวจสอบโน้ตบุ๊กบางตัวเพื่อหาแป้นคีย์บอร์ดที่ไม่ดีดังนั้นฉันจึงอยากเร่งความเร็วให้มากที่สุด ฉันไม่พบสิ่งใดสำหรับงานนี้ดังนั้นความคิดของฉันคือสคริปต์ที่อ่านคีย์ที่กดและรู้ว่าแป้นคีย์บอร์ดทั้งหมดดังนั้นฉันจึงสามารถทุบตีมันได้อย่างรวดเร็วและรายงานว่ายังไม่ได้กด ฉันคิดว่าฉันจะประสบความสำเร็จที่มีทั้งshowkeyหรือxev, grepping เอาท์พุท: xev | grep keysym ตัวอย่างผลลัพธ์: state 0x10, keycode 46 (keysym 0x6c, l), same_screen YES, state 0x10, keycode 33 (keysym 0x70, p), same_screen YES, state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, state 0x10, keycode 51 (keysym 0x5d, bracketright), same_screen YES, state 0x10, keycode 36 …
14 bash  grep  awk  keyboard  stdout 

7
จะลดความโลภของนิพจน์ทั่วไปใน AWK ได้อย่างไร?
ฉันต้องการจะทำรูปแบบไม่โลภ (regular expression) awkการจับคู่ใน นี่คือตัวอย่าง: echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }' เป็นไปได้ไหมที่จะเขียนนิพจน์ทั่วไปที่เลือกสตริงที่สั้นกว่า? @article{gjn, แทนที่จะเป็นสายยาวนี้: @article{gjn, Author = {Grzegorz J. Nalepa}, ฉันต้องการผลลัพธ์นี้: Author = {Grzegorz J. Nalepa}, ฉันมีตัวอย่างอื่น: echo " ,บทความ {gjn, ผู้แต่ง = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] …

6
แบ่งไฟล์ออกเป็นสองส่วนในรูปแบบ
จะแบ่งไฟล์ขนาดใหญ่ออกเป็นสองส่วนได้อย่างไรในรูปแบบ รับตัวอย่างfile.txt: ABC EFG XYZ HIJ KNL ฉันต้องการที่จะแยกไฟล์นี้ที่XYZดังกล่าวว่าfile1มีเส้นขึ้นไปและส่วนที่เหลือของสายในXYZfile2

4
เอาต์พุตส่วนหนึ่งของแต่ละบรรทัดไปยังไฟล์แยกกัน
ฉันมีไฟล์เช่นนี้: a AGTACTTCCAGGAACGGTGCACTCTCC b ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT c ATATTAAATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATCCACTCCACAC d ATCAGTTTAATATCTGATACGTCCTCTATCCGAGGACAATATATTAAATGGA e TTTGGCTAAGATCAAGTGTAGTATCTGTTCTTATAAGTTTAATATCTGATATGTCCTCTATCTGA ฉันต้องการที่จะทำให้ไฟล์ที่มีลำดับa.seq AGTACTTCCAGGAACGGTGCACTCTCCในทำนองเดียวกันมีb.seq ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATในระยะสั้น Column1 ควรใช้เป็นชื่อไฟล์เอาต์พุตที่มีนามสกุล.seqและจากนั้นควรมีลำดับ column2 ที่สอดคล้องกัน ฉันสามารถทำได้โดยการเขียนสคริปต์ Perl แต่สิ่งใดในบรรทัดคำสั่งจะเป็นประโยชน์ หวังว่าจะได้ยินในไม่ช้า

7
วิธีลบบรรทัดว่างหลายบรรทัดออกจากไฟล์ได้อย่างไร
ฉันมีบางข้อความไฟล์ผมใช้ในการจดบันทึกใน - cat >> fileข้อความธรรมดาเพียงมักจะเพียงแค่ใช้ บางครั้งฉันใช้บรรทัดว่างหรือสอง (แค่กลับ - ตัวอักษรขึ้นบรรทัดใหม่) เพื่อระบุหัวเรื่อง / บรรทัดความคิดใหม่ ในตอนท้ายของแต่ละเซสชันก่อนที่จะปิดไฟล์ด้วยCtrl+ Dฉันมักจะเพิ่มบรรทัดว่าง (5-10) บรรทัด (ปุ่มย้อนกลับ) จำนวนมากเพื่อแยกเซสชัน เห็นได้ชัดว่านี่ไม่ฉลาดมาก แต่ใช้งานได้สำหรับฉันเพื่อจุดประสงค์นี้ ฉันไม่แต่สิ้นสุดขึ้นกับจำนวนมากและจำนวนบรรทัดที่ว่างเปล่าที่ไม่จำเป็นดังนั้นฉันกำลังมองหาวิธีที่จะลบ (ส่วนใหญ่) สายพิเศษ มีคำสั่ง Linux (ตัด, วาง, grep, ... ?) ที่สามารถใช้โดยตรงกับตัวเลือกไม่กี่? อีกวิธีหนึ่งไม่มีใครมีความคิดสำหรับ sed, awk หรือ perl (ดีในภาษาสคริปต์ใด ๆ จริง ๆ แม้ว่าฉันจะชอบ sed หรือ awk) สคริปต์ที่จะทำสิ่งที่ฉันต้องการ? เขียนอะไรบางอย่างใน C ++ (ซึ่งจริง ๆ …
14 scripting  sed  awk  perl  filter 

6
วิธีการเปรียบเทียบสองไฟล์ที่แตกต่างกันทีละบรรทัดในยูนิกซ์?
file1: 123 234 345 456 file2: 123 234 343 758 ผลลัพธ์ที่คาดหวัง: File3: TRUE TRUE FALSE FALSE ดังนั้นรหัสควรเปรียบเทียบสองไฟล์และพิมพ์ 'TRUE' หากตรงกันมิฉะนั้นควรพิมพ์ 'FALSE' ในไฟล์ใหม่ ใครช่วยกรุณาแก้ปัญหาสำหรับเรื่องนี้?

1
POSIX Awk บน Solaris 11 หรือไม่
นี่เป็นคำถามที่ตามมาไม่มากก็น้อยสำหรับคำถามสองข้อต่อไปนี้: ข้อผิดพลาดทางไวยากรณ์ในการลบบรรทัดที่ซ้ำกันผ่านทางไฟล์ awk '! x [$ 0] ++' ทางเลือก awk / nawk บน SunOs และ Linux ฉันเห็นว่าใน Solaris 10 (SunOS 5.10) ฉันได้รับผลลัพธ์ต่อไปนี้: $ type -a awk awk is /usr/bin/awk $ PATH="$(getconf PATH)" type -a awk awk is /usr/xpg4/bin/awk awk is /usr/bin/awk $ บน Solaris 10 /usr/bin/awkไม่ยอมรับ POSIX ไวยากรณ์ Awk มาตรฐานเช่น'!x[$0]++'แต่/usr/xpg4/bin/awkทำ …
13 awk  solaris  posix 


3
วิธีเพิ่มส่วนหัวและ / หรือท้ายกระดาษไปยังสตรีม sed หรือ awk
ฉันมีกลุ่มของผลลัพธ์ที่จะผ่าน sed และ awk ฉันจะนำหน้าผลลัพธ์ด้วย START และต่อท้ายคำตอบด้วย END ได้อย่างไร ตัวอย่างเช่นถ้าฉันมี All this code on all these lines and all these ฉันจะได้รับ: START All this code on all these lines and all these END ? ความพยายามของฉันคือ: awk '{print "START";print;print "END"}' แต่ฉันได้ ... START All this code END START on all these …

5
จะพิมพ์ชื่อสคริปต์ของตัวเองใน mawk ได้อย่างไร?
ใน bash $0มีชื่อของสคริปต์ แต่ใน awk ถ้าฉันทำสคริปต์ชื่อ myscript.awk ด้วยเนื้อหาต่อไปนี้: #!/usr/bin/awk -f BEGIN{ print ARGV[0] } และเรียกใช้มันจะพิมพ์ "awk" เท่านั้น นอกจากนี้ ARGV [i] กับ i> 0 ยังใช้สำหรับอาร์กิวเมนต์ของสคริปต์ในบรรทัดคำสั่งเท่านั้น ดังนั้นวิธีที่จะทำให้มันพิมพ์ชื่อของสคริปต์ในกรณีนี้ "myscript.awk"?
13 awk  scripting  mawk 

9
ฉันจะลบคำที่ 5 ของทุกบรรทัดในไฟล์ได้อย่างไร
ฉันต้องการลบคำที่ 5 ของแต่ละบรรทัดในไฟล์ เนื้อหาปัจจุบันของไฟล์: File is not updated or and will be removed System will shut down f within 10 seconds Please save your work 55 or copy to other location Kindly cooperate with us D ผลลัพธ์ที่คาดหวัง: File is not updated and will be removed System will shut down within …

9
เครื่องมือบรรทัดคำสั่งเพื่อ“ cat” การขยายแบบคู่ของแถวทั้งหมดในไฟล์
สมมติว่าฉันมีไฟล์ (เรียกว่า sample.txt) ที่มีลักษณะดังนี้: Row1,10 Row2,20 Row3,30 Row4,40 ฉันต้องการที่จะทำงานกับสตรีมจากไฟล์นี้ซึ่งเป็นการรวมกันแบบคู่ของทั้งสี่แถว (ดังนั้นเราควรจะจบด้วย 16 ทั้งหมด) ตัวอย่างเช่นฉันกำลังมองหาคำสั่งสตรีม (เช่นมีประสิทธิภาพ) โดยที่เอาต์พุตคือ: Row1,10 Row1,10 Row1,10 Row2,20 Row1,10 Row3,30 Row1,10 Row4,40 Row2,20 Row1,10 Row1,20 Row2,20 ... Row4,40 Row4,40 กรณีการใช้งานของฉันคือฉันต้องการสตรีมเอาต์พุตนี้ไปยังคำสั่งอื่น (เช่น awk) เพื่อคำนวณเมทริกบางส่วนเกี่ยวกับชุดค่าผสมแบบคู่นี้ ฉันมีวิธีที่จะทำสิ่งนี้ใน awk แต่ข้อกังวลของฉันคือการใช้บล็อก END {} ของฉันหมายความว่าฉันกำลังเก็บไฟล์ทั้งหมดไว้ในหน่วยความจำก่อนส่งออก รหัสตัวอย่าง: awk '{arr[$1]=$1} END{for (a in arr){ for (a2 in …

4
วิธีการลบบรรทัดที่ซ้ำกันด้วย awk ในขณะที่รักษาบรรทัดว่างอยู่?
awkคำสั่งด้านล่างจะลบบรรทัดที่ซ้ำกันทั้งหมดตามที่อธิบายไว้ที่นี่ : awk '!seen[$0]++' หากข้อความมีบรรทัดว่างทั้งหมด แต่บรรทัดว่างหนึ่งบรรทัดจะถูกลบ ฉันจะเก็บบรรทัดว่างไว้ทั้งหมดในขณะที่ลบบรรทัดที่ซ้ำกันที่ไม่ว่างทั้งหมดโดยใช้เพียงอย่างเดียวได้awkอย่างไร โปรดรวมคำอธิบายสั้น ๆ
13 awk 

4
วิธีการใช้ regex กับ AWK สำหรับการเปลี่ยนสตริง
สมมติว่ามีข้อความจากไฟล์: (bookmarks ("Chapter 1 Introduction 1" "#1" ("1.1 Problem Statement and Basic Definitions 23" "#2") ("Exercises 31" "#30") ("Notes and References 42" "#34")) ) ฉันต้องการเพิ่ม 11 ลงในแต่ละหมายเลขแล้วตามด้วย a "ในแต่ละบรรทัดหากมีหนึ่งเช่น (bookmarks ("Chapter 1 Introduction 12" "#12" ("1.1 Problem Statement and Basic Definitions 34" "#13") ("Exercises 42" "#41") ("Notes and References 53" …


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