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

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

3
วิธีแทรกข้อความหลังสตริงที่ต้องการในไฟล์ได้อย่างไร?
ตอนนี้ฉันกำลังใช้echo "Hello World" >> file.txtต่อท้ายข้อความในไฟล์ แต่ฉันต้องเพิ่มข้อความด้านล่างสตริงที่แน่นอนสมมติว่า "[ตัวเลือก]" มันเป็นไปได้ด้วยsedหรือไม่ เช่น: ใส่ไฟล์ Some text Random [option] Some stuff ไฟล์ที่ส่งออก Some text Random [option] *inserted text* Some stuff

7
วิธีอ่านบรรทัดแรกและบรรทัดสุดท้ายจากเอาต์พุต cat?
ฉันมีไฟล์ข้อความ งาน - รับบรรทัดแรกและบรรทัดสุดท้ายจากไฟล์หลังจาก $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 ต้องการสิ่งนี้โดยไม่ต้องใช้เอาต์พุต cat (เพียง 1 และ 5) ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 อาจจะมีวิธีแก้ปัญหาที่สั้นลงและสั้นลงกว่าเดิม ...
64 bash  shell  sed  awk  grep 

3
ความแตกต่างระหว่าง sed บน Mac OSX และ sed“ มาตรฐาน” อื่น ๆ หรือไม่?
ฉันมีปัญหาบางอย่างในการใช้คำตอบที่ให้ไว้ในเว็บไซต์นี้สำหรับคำถามนี้เกี่ยวกับคำสั่ง sed เพื่อแทนที่บรรทัดว่างด้วยเนื้อหาอีกสองบรรทัดและมันก็เกิดขึ้นถ้าคำสั่ง sed บน Mac OS (10.6.7 สำหรับฉัน ) แตกต่างกัน ฉันไม่คิดว่ามันเป็น แต่สงสัยว่าคนอื่น ๆ ในเว็บไซต์นี้คิดแตกต่างกันหรือไม่
61 osx  sed  standard 

11
ฉันจะใช้ตัวแปรใน LHS และ RHS ของการทดแทน sed ได้อย่างไร
ฉันต้องการทำ: cat update_via_sed.sh | sed 's/old_name/new_name/' > new_update_via_sed.sh ในโปรแกรมของฉัน แต่ฉันต้องการใช้ตัวแปรเช่น old_run='old_name_952' new_run='old_name_953' ฉันลองใช้แล้ว แต่การทดแทนไม่ได้เกิดขึ้น (ไม่มีข้อผิดพลาด) ฉันเหนื่อย: cat update_via_sed.sh | sed 's/old_run/new_run/' cat update_via_sed.sh | sed 's/$old_run/$new_run/' cat update_via_sed.sh | sed 's/${old_run}/${new_run}/'
61 sed 

9
วิธีการแยก JSON ด้วยเชลล์สคริปต์ใน Linux?
ฉันมีเอาต์พุต JSON ซึ่งฉันต้องการแยกพารามิเตอร์บางอย่างใน Linux นี่คือเอาต์พุต JSON: { "OwnerId": "121456789127", "ReservationId": "r-48465168", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "RootDeviceType": "ebs", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2014-03-19T09:16:56.000Z", "PrivateIpAddress": "10.250.171.248", "ProductCodes": [ { "ProductCodeId": "aacglxeowvn5hy8sznltowyqe", "ProductCodeType": "marketplace" } ], "VpcId": "vpc-86bab0e4", "StateTransitionReason": …

2
การแทนที่สตริงตามหมายเลขบรรทัด
ฉันมีสถานการณ์ที่ฉันต้องการแทนที่สตริงเฉพาะในไฟล์จำนวนมาก แทนที่สตริงAAAด้วยสตริงBBBอื่นแต่มีจำนวนมากของสตริงที่เริ่มต้นด้วย AAA หรือสิ้นสุดใน AAA และฉันต้องการที่จะแทนที่เพียงหนึ่งในบรรทัดที่ 34 และให้คนอื่น ๆ เหมือนเดิม เป็นไปได้หรือไม่ที่จะระบุด้วยหมายเลขบรรทัดบนไฟล์ทั้งหมดสตริงนี้ตรงกับบรรทัดที่ 34
50 sed  awk 

13
วิธีการพิมพ์ทุกบรรทัดหลังจากการจับคู่ถึงจุดสิ้นสุดของไฟล์?
อินพุตไฟล์ 1 คือ: dog 123 4335 cat 13123 23424 deer 2131 213132 bear 2313 21313 ฉันให้รูปแบบตรงกันจากในother file(เช่นdog 123 4335จาก file2) ฉันตรงกับรูปแบบของเส้นคือdog 123 4335และหลังจากพิมพ์ทุกบรรทัดโดยไม่ต้องจับคู่บรรทัดผลลัพธ์ของฉันคือ: cat 13123 23424 deer 2131 213132 bear 2313 21313 หากใช้เฉพาะที่ไม่มีที่อยู่ของบรรทัดใช้รูปแบบเท่านั้นตัวอย่างเช่น1s วิธีจับคู่และพิมพ์บรรทัด?


4
ย้อนกลับ grepping
สมมติว่าฉันมีไฟล์ข้อความขนาดใหญ่จริงๆ (ประมาณ 10.000.000 บรรทัด) ฉันต้องการgrepมันจากตอนท้ายและบันทึกผลลัพธ์ลงในไฟล์ วิธีที่มีประสิทธิภาพที่สุดในการทำงานให้สำเร็จคืออะไร?

5
ลบบรรทัดสุดท้ายออกจากไฟล์
ฉันใช้sed เพื่อลบบรรทัดที่มีตำแหน่งเฉพาะอย่างรวดเร็วเช่น sed '1d' sed '5d' แต่ถ้าฉันต้องการลบบรรทัดสุดท้ายของไฟล์และฉันไม่รู้จำนวนเส้น (ฉันรู้ว่าฉันสามารถใช้มันwcและลูกเล่นอื่น ๆ ได้) ขณะนี้ใช้วิธีแก้ไขด้วยheadและtailรวมกับwcสิ่งที่ต้องทำ บิดเร็ว ๆ ที่นี่?

9
การเปลี่ยนแท็บอย่างง่าย ๆ ล้มเหลวอย่างลึกลับ
นี่ควรจะง่ายจริงๆ แต่ด้วยเหตุผลบางอย่างมันไม่ทำงาน: sed -i.bak -E 's/\t/ /' file.txt แทนที่จะเป็นการแทนที่อักขระแท็บมันเป็นการแทนที่tอักขระ ฉันลองทุกรูปแบบเกี่ยวกับเรื่องนี้ฉันสามารถคิดถึงเล่นกับข้อความ ฯลฯ ฉัน Googled และพบคนอื่น ๆ ที่ใช้คำพูดที่คล้ายกันและดูเหมือนว่าพวกเขาจะได้ผลสำหรับพวกเขา สิ่ง-Eนี้เป็น OS X ฉันคิดว่าความล้มเหลวอาจเป็นผลมาจากการเล่นโวหารแปลก ๆ ของ OS X sedดังนั้นฉันจึงลองใช้กับ Ruby เช่นกัน (ไม่ใส่-i) และได้รับผลลัพธ์เดียวกัน: ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new ฉันใช้ Bash 3.2.51 บน OS X และ iTerm ถึงแม้ว่าฉันจะไม่เห็นว่าสิ่งเหล่านี้จะเกี่ยวข้องกันมากเพียงใด ฉันไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมแปลก ๆ แต่ฉันสามารถโพสต์สิ่งที่คุณคิดว่าอาจเกี่ยวข้อง มีอะไรผิดปกติ? …

6
การแทนที่หลายบรรทัดว่างด้วยบรรทัดว่างเดี่ยวใน vim / sed
คำถามไม่มากก็น้อยบอกว่ามันทั้งหมด ฉันทราบว่า/^$/dจะลบบรรทัดว่างทั้งหมด แต่ฉันไม่เห็นวิธีพูดว่า 'แทนที่บรรทัดว่างสองบรรทัดขึ้นไปด้วยบรรทัดว่างเดียว' ความคิดใด ๆ

9
วิธีการเปลี่ยนชื่อไฟล์หลายไฟล์โดยแทนที่สตริงในชื่อไฟล์? สายนี้มี“ #”
https://serverfault.com/questions/70939/how-to-replace-a-text-string-in-multiple-files-in-linux https://serverfault.com/questions/228733/how-to-rename-multiple-files-by-replacing-word-in-file-name https://serverfault.com/questions/212153/replace-string-in-files-with-certain-file-extension https://serverfault.com/questions/33158/searching-a-number-of-files-for-a-string-in-linux บทความที่กล่าวถึงเหล่านี้ล้วนตอบคำถามของฉัน อย่างไรก็ตามไม่มีพวกเขาทำงานให้ฉัน ฉันสงสัยว่าเป็นเพราะสตริงที่ฉันพยายามแทนที่มีหมายเลขอยู่ มีวิธีพิเศษในการแก้ไขปัญหานี้หรือไม่? ฉันมีไฟล์รูปภาพที่มีéแทนที่ด้วย # U00a9 ระหว่างการย้ายข้อมูลไซต์ มีลักษณะเช่นนี้: Lucky-#U00a9NBC-80x60.jpg Lucky-#U00a9NBC-125x125.jpg Lucky-#U00a9NBC-150x150.jpg Lucky-#U00a9NBC-250x250.jpg Lucky-#U00a9NBC-282x232.jpg Lucky-#U00a9NBC-300x150.jpg Lucky-#U00a9NBC-300x200.jpg Lucky-#U00a9NBC-300x250.jpg Lucky-#U00a9NBC-360x240.jpg Lucky-#U00a9NBC-400x250.jpg Lucky-#U00a9NBC-430x270.jpg Lucky-#U00a9NBC-480x240.jpg Lucky-#U00a9NBC-600x240.jpg Lucky-#U00a9NBC-600x250.jpg Lucky-#U00a9NBC.jpg และฉันต้องการเปลี่ยนมันเป็นอย่างนี้: Lucky-safeNBC-80x60.jpg Lucky-safeNBC-125x125.jpg Lucky-safeNBC-150x150.jpg Lucky-safeNBC-250x250.jpg Lucky-safeNBC-282x232.jpg Lucky-safeNBC-300x150.jpg Lucky-safeNBC-300x200.jpg Lucky-safeNBC-300x250.jpg Lucky-safeNBC-360x240.jpg Lucky-safeNBC-400x250.jpg Lucky-safeNBC-430x270.jpg Lucky-safeNBC-480x240.jpg Lucky-safeNBC-600x240.jpg Lucky-safeNBC-600x250.jpg Lucky-safeNBC.jpg UPDATE: ตัวอย่างเหล่านี้ทั้งหมดเริ่มต้นด้วย "LU00a9ucky แต่นี่คือภาพจำนวนมากที่มีชื่อแตกต่างกันฉันแค่กำหนดเป้าหมายส่วน" # U00a9 …
42 sed  rename  mv 

7
sed สามารถแทนที่อักขระบรรทัดใหม่ได้หรือไม่
มีปัญหากับตัวละครใหม่และตัวละครใหม่หรือไม่? ฉันมีไฟล์ test.txt พร้อมเนื้อหาดังต่อไปนี้ aaaaa bbbbb ccccc ddddd ต่อไปนี้ใช้ไม่ได้: sed -r -i 's/\n/,/g' test.txt ฉันรู้ว่าฉันสามารถใช้trกับสิ่งนี้ได้ แต่คำถามของฉันคือทำไมมันดูเป็นไปไม่ได้เลยที่จะนั่งดู หากนี่คือผลข้างเคียงของการประมวลผลไฟล์ทีละบรรทัดฉันจะสนใจว่าทำไมสิ่งนี้จึงเกิดขึ้น ฉันคิดว่าgrepจะลบบรรทัดใหม่ sed ทำเช่นเดียวกันหรือไม่
42 sed 


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