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

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

7
ข้อผิดพลาด RE: ลำดับไบต์ที่ผิดกฎหมายบน Mac OS X
ฉันกำลังพยายามแทนที่สตริงใน Makefile บน Mac OS X สำหรับการคอมไพล์ข้ามเป็น iOS สตริงมีเครื่องหมายคำพูดคู่ฝังอยู่ คำสั่งคือ: sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure และข้อผิดพลาดคือ: sed: RE error: illegal byte sequence ฉันได้ลองใช้เครื่องหมายคำพูดคู่เครื่องหมายจุลภาคขีดคั่นและเครื่องหมายทวิภาคโดยไม่มีความสุข ตัวอย่างเช่น: sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure ฉันมีเวลาสักครู่ในการดีบักปัญหา ไม่มีใครรู้วิธีการsedพิมพ์ตำแหน่งของลำดับไบต์ที่ผิดกฎหมายหรือไม่ หรือใครรู้ว่าลำดับไบต์ที่ผิดกฎหมายคืออะไร?
184 regex  macos  bash  sed 

7
ลบบรรทัดทั้งหมดที่ขึ้นต้นด้วย # จากไฟล์
#ทุกสายที่มีความคิดเห็นในไฟล์ที่เริ่มต้นด้วย ฉันจะลบบรรทัดทั้งหมด (และเฉพาะบรรทัดเหล่านั้น) ที่เริ่มต้นด้วยได้#อย่างไร บรรทัดอื่นที่มี#แต่ไม่ใช่ที่จุดเริ่มต้นของบรรทัดควรละเว้น
182 bash  sed 

5
ดึงบันทึก 100 บรรทัดล่าสุด
ฉันต้องการดึง 100 ท่อนสุดท้ายจากไฟล์บันทึก ฉันลองใช้คำสั่ง sed sed -n -e '100,$p' logfilename โปรดแจ้งให้ฉันทราบว่าฉันจะเปลี่ยนคำสั่งนี้เพื่อดึงข้อมูล100 บรรทัดล่าสุดได้อย่างไร
164 linux  logging  sed 

22
ฉันจะลบบรรทัดใหม่ได้อย่างไรถ้าเป็นอักขระตัวสุดท้ายในไฟล์
ฉันมีไฟล์บางไฟล์ที่ฉันต้องการลบขึ้นบรรทัดใหม่หากเป็นอักขระตัวสุดท้ายในไฟล์ od -cแสดงให้ฉันเห็นว่าคำสั่งที่ฉันเรียกใช้นั้นเขียนไฟล์ด้วยการขึ้นบรรทัดใหม่: 0013600 n t > \n ฉันได้ลองเล่นเล่ห์เหลี่ยมเล็กน้อย แต่สิ่งที่ดีที่สุดที่ฉันคิดได้คือไม่ได้เล่นเล่ห์เหลี่ยม: sed -e '$s/\(.*\)\n$/\1/' abc ความคิดใด ๆ วิธีการทำเช่นนี้?
162 linux  perl  shell  awk  sed 

9
วิธีลบบรรทัดที่ปรากฏในไฟล์ B จากไฟล์ A อื่น?
ฉันมีไฟล์ขนาดใหญ่A (ประกอบด้วยอีเมล) หนึ่งบรรทัดสำหรับแต่ละเมล ฉันยังมีไฟล์ Bอีกอันที่มีเมลอีกชุดหนึ่ง ฉันจะใช้คำสั่งใดเพื่อลบที่อยู่ทั้งหมดที่ปรากฏในไฟล์ B จากไฟล์ A ดังนั้นว่าไฟล์ที่มีอยู่: A B C และไฟล์ B บรรจุอยู่: B D E จากนั้นไฟล์ A ควรจะเหลือด้วย: A C ตอนนี้ฉันรู้ว่านี่เป็นคำถามที่อาจจะได้รับการถามบ่อยขึ้น แต่ผมพบว่าเพียงหนึ่งคำสั่งออนไลน์ที่ให้ฉันข้อผิดพลาดที่มีตัวคั่นที่ไม่ดี ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก! ใครบางคนจะมากับซับในที่ฉลาด แต่ฉันไม่ใช่ผู้เชี่ยวชาญเชลล์
160 linux  shell  sed  diff  grep 

1
sed ล้มเหลวด้วยข้อผิดพลาด“ ตัวเลือกที่ไม่รู้จักเพื่อ `s '”
ฉันพยายามใช้ sed -i -e "s/.*seb.*/ \"$ftp_login_template\"/" $ftp_dir อย่างไรก็ตามฉันได้รับข้อผิดพลาดนี้: sed: -e expression #1, char 34: unknown option to `s' ฉันไม่เข้าใจว่าทำไมเพราะสิ่งนี้ทำงานได้อย่างสมบูรณ์: sed -i -e "s/.*wbspassword.*/ \"wbspassword\": \"$password\",/" $user_conf มีความคิดเห็นเกี่ยวกับสิ่งที่ฉันทำผิดหรือเปล่า? นี่อาจเป็นปัญหาหรือไม่ ftp_login_template=\${user}:${password}:24:86::\/var\/lib\/clit.${user}\/downloads:\/bin\/false\"
158 sed 

10
การต่อท้ายบรรทัดกับไฟล์ต่อเมื่อไม่มีอยู่
ฉันต้องเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์ปรับแต่ง: include "/configs/projectname.conf" ไปยังไฟล์ที่เรียกว่า lighttpd.conf ฉันกำลังมองหาที่sedจะใช้ในการทำเช่นนี้ แต่ฉันไม่สามารถหาวิธีได้ ฉันจะแทรกได้อย่างไรถ้าบรรทัดนั้นไม่มีอยู่?
157 linux  sed  terminal 

9
วิธีการแทนที่ทั้งบรรทัดในไฟล์ข้อความด้วยหมายเลขบรรทัด
ฉันมีสถานการณ์ที่ฉันต้องการสคริปต์ทุบตีเพื่อแทนที่บรรทัดทั้งหมดในไฟล์ หมายเลขบรรทัดจะเหมือนกันเสมอดังนั้นอาจเป็นตัวแปรแบบตายตัว ฉันไม่ได้พยายามที่จะแทนที่สตริงย่อยบางส่วนในบรรทัดนั้นฉันแค่ต้องการแทนที่บรรทัดนั้นด้วยบรรทัดใหม่ทั้งหมด มีวิธีทุบตีสำหรับทำสิ่งนี้ (หรือสิ่งที่ง่ายที่สามารถโยนลงในสคริปต์. sh)
152 bash  text  replace  sed 

21
วิธีการรวมทุกสองบรรทัดเป็นหนึ่งเดียวจากบรรทัดคำสั่ง?
ฉันมีไฟล์ข้อความที่มีรูปแบบดังต่อไปนี้ บรรทัดแรกคือ "KEY" และบรรทัดที่สองคือ "VALUE" KEY 4048:1736 string 3 KEY 0:1772 string 1 KEY 4192:1349 string 1 KEY 7329:2407 string 2 KEY 0:1774 string 1 ฉันต้องการค่าในบรรทัดเดียวกับคีย์ ดังนั้นผลลัพธ์ควรมีลักษณะเช่นนี้ ... KEY 4048:1736 string 3 KEY 0:1772 string 1 KEY 4192:1349 string 1 KEY 7329:2407 string 2 KEY 0:1774 string 1 มันจะดีกว่าถ้าฉันสามารถใช้ตัวคั่นบางตัวเช่น$หรือ,: KEY …
151 bash  awk  sed  grep 

16
มีโปรแกรม sed อย่างยูทิลิตี้สำหรับ cmd.exe หรือไม่? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการแก้ไขเนื้อหาไฟล์โดยใช้โปรแกรมโดยใช้บรรทัดคำสั่ง windows ( cmd.exe ) ใน * ระวังมีsedสำหรับงานนี้ มีประโยชน์เทียบเท่าพื้นเมืองใน windows?
149 windows  sed  cmd 

21
วิธีใช้ sed เพื่อลบบรรทัดสุดท้ายของไฟล์
ฉันต้องการที่จะลบบางnเส้นจากจุดสิ้นสุดของแฟ้ม สิ่งนี้สามารถทำได้โดยใช้ sed? ตัวอย่างเช่นหากต้องการลบบรรทัดจาก 2 เป็น 4 ฉันสามารถใช้ได้ $ sed '2,4d' file แต่ฉันไม่รู้หมายเลขบรรทัด ฉันสามารถลบบรรทัดสุดท้ายโดยใช้ $sed $d file แต่ฉันต้องการทราบวิธีลบเส้นnจากจุดสิ้นสุด โปรดแจ้งให้ฉันทราบวิธีการใช้ sed หรือวิธีอื่น
148 linux  bash  shell  sed 

9
จะลบบรรทัดที่ซ้ำกันในไฟล์โดยไม่เรียงลำดับใน Unix ได้อย่างไร?
มีวิธีลบบรรทัดที่ซ้ำกันในไฟล์ใน Unix หรือไม่? ฉันสามารถทำได้ด้วยsort -uและuniqคำสั่ง แต่ฉันต้องการใช้sedหรือawk. เป็นไปได้หรือไม่
148 unix  shell  scripting  sed  awk 

10
วิธีการแทนที่สตริงที่มีเครื่องหมายทับด้วย sed?
ฉันมีโครงการ Visual Studio ซึ่งพัฒนาขึ้นในเครื่อง ไฟล์รหัสจะต้องมีการปรับใช้กับเซิร์ฟเวอร์ระยะไกล ปัญหาเดียวคือ URLsthey บรรจุซึ่งมีการกำหนดค่าตายตัว โครงการมี URL เช่น? page = หนึ่ง สำหรับการเชื่อมโยงที่จะถูกต้องบนเซิร์ฟเวอร์นั้นจะต้องได้/ หน้า / หนึ่ง ฉันตัดสินใจแทนที่ URLS ทั้งหมดใน codefiles ด้วย sed ก่อนการปรับใช้ แต่ฉันติดอยู่ที่เครื่องหมายทับ ฉันรู้ว่านี่ไม่ใช่วิธีแก้ปัญหาที่สวย แต่มันง่ายที่จะช่วยฉันประหยัดเวลาได้มาก จำนวนสตริงทั้งหมดที่ฉันต้องแทนที่น้อยกว่า 10 จำนวนไฟล์ทั้งหมดที่ต้องถูกตรวจสอบคือ ~ 30 ตัวอย่างที่อธิบายสถานการณ์ของฉันอยู่ด้านล่าง: คำสั่งที่ฉันใช้: sed -f replace.txt < a.txt > b.txt replace.txt ซึ่งมีสตริงทั้งหมด: s/?page=one&/pageone/g s/?page=two&/pagetwo/g s/?page=three&/pagethree/g a.txt: ?page=one& ?page=two& …
147 sed 

9
แทรกบรรทัดที่หมายเลขบรรทัดเฉพาะด้วย sed หรือ awk
ฉันมีไฟล์สคริปต์ที่ฉันต้องแก้ไขด้วยสคริปต์อื่นเพื่อแทรกข้อความที่บรรทัดที่ 8 สตริงที่จะแทรก: ลงในไฟล์ที่เรียกว่าProject_Name=sowsteststart ฉันพยายามใช้ awk และ sed แต่คำสั่งของฉันกำลังสับสน
146 sed  awk 

6
การแก้ไขแบบแทนที่ด้วย sed บน OS X
ฉันต้องการแก้ไขไฟล์ด้วย sed บน OS X ฉันใช้คำสั่งต่อไปนี้: sed 's/oldword/newword/' file.txt เอาต์พุตจะถูกส่งไปยังเทอร์มินัล file.txtไม่ได้รับการแก้ไข การเปลี่ยนแปลงจะถูกบันทึกไว้ในfile2.txtด้วยคำสั่งนี้: sed 's/oldword/newword/' file1.txt > file2.txt อย่างไรก็ตามฉันไม่ต้องการไฟล์อื่น ฉันแค่ต้องการแก้ไข file1.txt ฉันจะทำสิ่งนี้ได้อย่างไร ฉันได้ลองใช้แฟล็ก -i แล้ว ซึ่งส่งผลให้เกิดข้อผิดพลาดดังต่อไปนี้: sed: 1: "file1.txt": invalid command code f
142 macos  file-io  sed  in-place 

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