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

Sed (Stream EDitor) เป็นเครื่องมือแก้ไขบรรทัดคำสั่งสำหรับสภาพแวดล้อม POSIX Sed ประมวลผลไฟล์อย่างน้อยหนึ่งไฟล์ตามสคริปต์แก้ไขและเขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน สร้างขึ้นที่ Bell Labs มาตั้งแต่กลางทศวรรษที่ 70



30
วิธีการค้นหา / แทนที่สตริงแบบเรียกซ้ำด้วย awk หรือ sed?
ฉันจะค้นหาและแทนที่ทุกเหตุการณ์ที่เกิดขึ้นได้อย่างไร: subdomainA.example.com กับ subdomainB.example.com ในทุกไฟล์ข้อความภายใต้/home/www/ต้นไม้ไดเรกทอรีซ้ำซ้ำ?
675 bash  sed  awk  replace 

13
ค้นหาและแทนที่ไฟล์และไฟล์เขียนทับไม่ทำงาน แต่จะลบไฟล์
ฉันต้องการเรียกใช้ค้นหาและแทนที่ไฟล์ HTML ผ่านบรรทัดคำสั่ง คำสั่งของฉันมีลักษณะเช่นนี้: sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html เมื่อฉันเรียกใช้และดูไฟล์ในภายหลังมันว่างเปล่า มันลบเนื้อหาของไฟล์ของฉัน เมื่อฉันเรียกใช้หลังจากเรียกคืนไฟล์อีกครั้ง: sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html stdoutเป็นเนื้อหาของแฟ้มและค้นหาและแทนที่ได้รับการดำเนินการ ทำไมสิ่งนี้จึงเกิดขึ้น

19
เครื่องมือทุบตีเพื่อรับบรรทัดที่ n จากไฟล์
มีวิธี "แบบบัญญัติ" หรือไม่? ฉันใช้head -n | tail -1ซึ่งทำเคล็ดลับ แต่ฉันสงสัยว่ามีเครื่องมือทุบตีที่แยกเส้น (หรือช่วงบรรทัด) จากไฟล์ โดย "canonical" ฉันหมายถึงโปรแกรมที่มีหน้าที่หลักทำเช่นนั้น
604 bash  shell  unix  awk  sed 

16
ฉันจะลบบรรทัดแรกของไฟล์ข้อความโดยใช้สคริปต์ bash / sed ได้อย่างไร
ฉันจำเป็นต้องลบบรรทัดแรกออกจากไฟล์ข้อความขนาดใหญ่โดยใช้สคริปต์ทุบตี ตอนนี้ฉันกำลังใช้sed -i -e "1d" $FILE- แต่ใช้เวลาประมาณหนึ่งนาทีในการลบ มีวิธีที่มีประสิทธิภาพมากกว่านี้หรือไม่
554 bash  scripting  sed 

22
ฉันจะแยกช่วงของเส้นที่กำหนดไว้ล่วงหน้าจากไฟล์ข้อความบน Unix ได้อย่างไร
ฉันมีการถ่ายโอนข้อมูล SQL บรรทัด ~ 23000 ที่มีฐานข้อมูลหลายค่าที่คุ้มค่าของข้อมูล ฉันต้องการแยกส่วนที่แน่นอนของไฟล์นี้ (เช่นข้อมูลสำหรับฐานข้อมูลเดียว) และวางไว้ในไฟล์ใหม่ ฉันรู้ทั้งหมายเลขเริ่มต้นและจุดสิ้นสุดของข้อมูลที่ฉันต้องการ ไม่มีใครรู้คำสั่ง Unix (หรือชุดคำสั่ง) เพื่อแยกทุกบรรทัดจากไฟล์ระหว่างพูดบรรทัด 16224 และ 16482 แล้วเปลี่ยนเส้นทางพวกเขาเป็นไฟล์ใหม่?

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

21
การจับคู่ regex ไม่โลภ (ลังเล) ใน sed หรือไม่
ฉันพยายามใช้ sed เพื่อล้างบรรทัด URL เพื่อแยกโดเมนออก ดังนั้นจาก: http://www.suepearson.co.uk/product/174/71/3816/ ฉันต้องการ: http://www.suepearson.co.uk/ (ไม่ว่าจะมีหรือไม่มีเครื่องหมายทับท้ายก็ไม่สำคัญ) ฉันเหนื่อย: sed 's|\(http:\/\/.*?\/\).*|\1|' และ (หนีออกมาจากปริมาณที่ไม่โลภ) sed 's|\(http:\/\/.*\?\/\).*|\1|' แต่ดูเหมือนว่าฉันจะไม่สามารถให้ quantifier ที่ไม่โลภ ( ?) ทำงานดังนั้นมันจะจับคู่สตริงทั้งหมดเสมอ
406 regex  sed  pcre  greedy  regex-greedy 

13
ลบบรรทัดว่างโดยใช้ sed
ฉันพยายามลบบรรทัดว่างโดยใช้ sed: sed '/^$/d' แต่ฉันไม่มีโชคกับมัน ตัวอย่างเช่นฉันมีเส้นเหล่านี้: xxxxxx yyyyyy zzzzzz และฉันต้องการให้เป็นเช่น: xxxxxx yyyyyy zzzzzz สิ่งที่ควรเป็นรหัสสำหรับสิ่งนี้?
351 linux  unix  sed 

12
แทนที่ทั้งบรรทัดที่มีสตริงโดยใช้ Sed
ฉันมีไฟล์ข้อความที่มีบรรทัดคล้าย ๆ sometext sometext sometext TEXT_TO_BE_REPLACED sometext sometext sometext ฉันต้องการแทนที่ทั้งบรรทัดด้านบนด้วย This line is removed by the admin. คำค้นหาคือ TEXT_TO_BE_REPLACED ฉันต้องเขียนเชลล์สคริปต์สำหรับสิ่งนี้ ฉันจะใช้สิ่งนี้ได้sedอย่างไร
319 string  shell  sed 

14
หลบหนีสตริงสำหรับรูปแบบการแทนที่ sed
ในสคริปต์ทุบตีของฉันฉันมีสตริงภายนอก (ที่ได้รับจากผู้ใช้) ซึ่งฉันควรใช้ในรูปแบบ sed REPLACE="<funny characters here>" sed "s/KEYWORD/$REPLACE/g" ฉันจะหลีกเลี่ยง$REPLACEสตริงเพื่อให้สามารถยอมรับได้อย่างปลอดภัยโดยsedการแทนที่ด้วยตัวอักษร? หมายเหตุ:KEYWORDเป็น substring ใบ้ตรงกับไม่มี ฯลฯ มันไม่ได้เป็นที่จัดทำโดยผู้ใช้
317 string  sed  escaping 

11
คำสั่ง sed ด้วยตัวเลือก -i ที่ล้มเหลวบน Mac แต่ทำงานบน Linux
ฉันใช้sedคำสั่งต่อไปนี้เพื่อค้นหา / แทนที่ข้อความใน Linux สำเร็จแล้ว: sed -i 's/old_link/new_link/g' * อย่างไรก็ตามเมื่อฉันลองบน Mac OS X ของฉันฉันจะได้รับ: "คำสั่ง c คาดว่า \ ตามด้วยข้อความ" ฉันคิดว่า Mac ของฉันใช้เชลล์ BASH แบบปกติ ว่าไง? แก้ไข: ตามประสิทธิภาพสูง @ นี่เป็นเพราะ Mac sedมีรสชาติที่แตกต่างกัน (BSD) ดังนั้นคำถามของฉันจะเป็นอย่างไรฉันจะทำซ้ำคำสั่งนี้ใน BSD ได้sedอย่างไร แก้ไข: นี่คือตัวอย่างจริงที่เป็นสาเหตุของสิ่งนี้: sed -i 's/hello/gbye/g' *
303 linux  macos  bash  sed 

13
แก้ไขไฟล์ในสถานที่
ฉันพยายามที่จะค้นหาว่ามันเป็นไปได้ที่จะแก้ไขไฟล์ในคำสั่ง sed เดียวโดยไม่ต้องสตรีมเนื้อหาที่แก้ไขด้วยตนเองเป็นไฟล์ใหม่แล้วเปลี่ยนชื่อไฟล์ใหม่เป็นชื่อไฟล์ต้นฉบับ ฉันลอง-iตัวเลือกแล้ว แต่ระบบ Solaris ของฉันบอกว่านั่น-iเป็นตัวเลือกที่ผิดกฎหมาย มีวิธีอื่นไหม
299 unix  sed  solaris 

13
แทนที่เครื่องหมายจุลภาคด้วยบรรทัดใหม่ใน sed บน MacOS หรือไม่
ฉันมีไฟล์ id ที่คั่นด้วยเครื่องหมายจุลภาค ฉันพยายามแทนที่คอมมาด้วยบรรทัดใหม่ ฉันพยายามแล้ว: sed 's/,/\n/g' file แต่มันไม่ทำงาน ฉันพลาดอะไรไป
287 macos  unix  sed 

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