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

sed เป็นตัวแก้ไขสตรีมบรรทัดคำสั่งสำหรับการกรองและแปลงข้อความ

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 

2
การใช้ sed เพื่อแทนที่อักขระพิเศษ
การทำงานนี้จะแทนที่tomด้วยsamในไฟล์: sed 's/tom/sam/g' file_1 > file_2 แต่นี่ไม่ได้: sed 's/*****/sam/g' file_1 > file_2 เพื่อแทนที่ตัวอักษรพิเศษที่มีคำว่า***** samฉันลองสแลช\*แต่มีข้อผิดพลาด
14 sed 


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 …

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 …

4
วิธีใช้ sed เพื่อจัดการเอาต์พุตสตรีมมิ่งอย่างต่อเนื่อง?
ฉันกำลังรวบรวมการนำเสนอสำหรับผู้ชมที่ไม่ใช่ด้านเทคนิค ฉันมีโปรแกรมที่ทำงานในการทุบตีที่ส่งออกกระแสอย่างต่อเนื่องของค่าบางอย่างที่มีความสำคัญ ฉันต้องการเน้นผลลัพธ์ที่สำคัญตามที่ปรากฏเพื่อให้ผู้ชมได้รับแนวคิดเกี่ยวกับความถี่ของพวกเขา ปัญหาคือฉันไม่สามารถsedทำงานบนสตรีมที่กำลังทำงานอยู่ได้ มันทำงานได้ดีถ้าฉันใส่ผลลัพธ์ลงในไฟล์เช่นเดียวกับใน: cat output.txt | sed "s/some text/some text bolded/" แต่ถ้าฉันลองแบบเดียวกันกับเอาต์พุตที่กำลังทำงานอยู่เช่นนี้ command | sed "s/some text/some text bolded/" sedไม่ทำอะไรเลย ความคิดใด ๆ ขณะที่แลมเบิร์ตมีประโยชน์พอที่จะชี้ให้เห็นคำพูดของฉันที่sedไม่ทำอะไรคลุมเครือ สิ่งที่เกิดขึ้นคือการที่เอาท์พุทโปรแกรมstdout(ฉันค่อนข้างมั่นใจว่ามันไม่ได้เขียนไปstderr) sedตามที่ปกติแม้ว่ามันประปาผ่าน ปัญหาน่าจะเป็นที่คำสั่งเรียกโปรแกรมที่สองซึ่งจากนั้นส่งออกไปยัง stdout มีบางบรรทัดที่พิมพ์โดยโปรแกรมแรก สิ่งเหล่านี้ฉันสามารถแก้ไขได้ จากนั้นจะมีกระแสของค่าที่พิมพ์โดยโปรแกรมที่สอง สิ่งเหล่านี้ฉันไม่สามารถแก้ไขได้ วิธี Perl และ awk ไม่ทำงานเช่นกัน

2
ทดสอบการค้นหาแบบเรียกซ้ำและแทนที่ก่อนเรียกใช้
มีวิธีใดบ้างในการเรียกใช้การค้นหาแบบเรียกซ้ำและแทนที่โดยใช้sedก่อนที่จะเรียกใช้จริง ฉันแค่ต้องการพิมพ์ผลลัพธ์ก่อนทำการค้นหาและแทนที่จริง ๆ สิ่งที่ต้องการสะท้อนผลลัพธ์ของ grep -rl term1 . |xargs sed -i -e 's/term1/term2/'
13 sed 

2
วิธีการแทนที่สตริงด้วยสตริงที่มีเครื่องหมายทับด้วย sed?
ฉันกำลังมองหาวิธีการแทนที่สตริงในไฟล์ด้วยสตริงที่มีเครื่องหมายทับโดยใช้ sed connect="192.168.100.61/foo" srcText="foo.bar=XPLACEHOLDERX" echo $srcText | sed "s/XPLACEHOLDERX/$connect" ผลลัพธ์คือ: sed: -e Expression #1, Character 32: Unknown option for `s'
13 sed 

4
วิธีทำการแทนที่แบบแทนที่ภายในที่สร้างเฉพาะการสำรองข้อมูลของไฟล์ที่เปลี่ยนแปลงไปแล้ว?
ฉันรันสิ่งต่อไปนี้เพื่อแทนที่คำที่ใช้ในไฟล์ทั้งหมดในไดเรกทอรีการทำงานปัจจุบัน: $ find . -type f -print0 | xargs -0 sed -i'.bup' -e's/Ms. Johnson/Mrs. Melbin/g' สิ่งนี้ดำเนินการแทนที่คำ แต่ยังสร้าง.bupไฟล์ของไฟล์ที่ไม่เคยมีMs. Johnsonสตริง ฉันจะทำการทดแทนโดยไม่สร้างการสำรองข้อมูลที่ไม่จำเป็นเหล่านี้ทั้งหมดได้อย่างไร

3
พิมพ์บรรทัดระหว่าง (และไม่รวม) สองรูปแบบ
ฉันจะส่งแบบฟอร์มโดยใช้ cURL ซึ่งเนื้อหาบางส่วนมาจากไฟล์อื่นที่เลือกโดยใช้ sed หากparam1เป็นรูปแบบการจับคู่บรรทัดจากไฟล์อื่น ๆ ที่ใช้sedคำสั่งด้านล่างจะทำงานได้ดี: curl -d param1="$(sed -n '/matchpattern/p' file.txt)" -d param2=value2 http://example.com/submit ตอนนี้ไปที่ปัญหา ฉันต้องการแสดงเฉพาะข้อความระหว่าง 2 รูปแบบการจับคู่ที่ไม่รวมรูปแบบการจับคู่นั้น ช่วยบอกว่าfile.txtประกอบด้วย: Bla bla bla firstmatch It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. secondmatch …


8
awk หรือ sed เพื่อพิมพ์เล็ก / พิมพ์ใหญ่อักขระเดียวในสตริง?
มีวิธีการตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กเพียงตัวเดียวในบางสาย? ตัวอย่างอินพุต: syslog_apr_24_30 syslog_mar_01_17 ผลลัพธ์ที่ต้องการ: syslog_Apr_24_30 syslog_Mar_01_17 หมายเหตุโปรดเริ่มต้นตัวพิมพ์ใหญ่ของเดือน ฉันลองแล้วawkแต่ยังไม่ดีพอที่จะทำให้มันทำงานได้
13 bash  sed  awk 

3
วิธีการ sed เฉพาะบรรทัดที่มีสตริงที่กำหนด?
INPUT: Select ASDF 325 sdfg sdflk lk Select TRG 46sdg rasdftz fsgs 45 Select ASDF 6ffg sdfg 4456 sdrg เอาท์พุท: Select ASDF 325 XXXX sdflk lk Select TRG 46sdg rasdftz fsgs 45 Select ASDF 6ffg XXXX 4456 sdrg ดังนั้นในระยะสั้นฉันต้อง "sed" "sdfg" ถึง "XXXX" แต่: เฉพาะในบรรทัดที่มีสตริง "Select ASDF" .. ฉันจะทำสิ่งนี้ได้อย่างไร (sed, …
13 sed  awk 

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