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

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

4
ฉันจะป้องกันไม่ให้ sed -i ทำลาย symlink ได้อย่างไร
ทำไมsed -iการดำเนินการของ symlink จึงทำลายลิงก์นั้นและแทนที่ด้วยไฟล์ปลายทาง จะหลีกเลี่ยงสิ่งนี้ได้อย่างไร เช่น. $ ls -l pet* -rw-rw-r-- 1 madneon madneon 4 mar 23 16:46 pet lrwxrwxrwx 1 madneon madneon 6 mar 23 16:48 pet_link -> pet $ sed -i 's/cat/dog/' pet_link $ ls -l pet* -rw-rw-r-- 1 madneon madneon 4 mar 23 16:48 pet -rw-rw-r-- 1 …
21 sed  symlink 

3
Sed - แทนที่อักขระในบรรทัดที่ตรงกันใช่หรือไม่
ในไฟล์ที่มีบรรทัดเช่นนี้: # lorem ipsum blah variable ฉันต้องการลบ#อักขระ (ความคิดเห็น) ในบรรทัดเดียวกันที่มีสตริงที่เฉพาะเจาะจงแทน เป็นsedสิ่งที่ดีสำหรับเรื่องนี้? ฉันกำลังดิ้นรนเพื่อให้การทำงานแบบมีเงื่อนไขนี้ ฉันมี "เงอะงะ" วิธีการทำเช่นนี้; ฉันสามารถค้นหาหมายเลขบรรทัดที่ตรงกันด้วยawkหรือsedจากนั้นใช้หมายเลขนี้ในsedคำสั่งแยกกันแต่ฉันเชื่อว่าสิ่งนี้สามารถทำได้ในวิธีที่ดีกว่ามาก
21 sed 

13
ฉันจะลบความคิดเห็นทั้งหมดจากไฟล์ได้อย่างไร
ฉันมีไฟล์ที่มีความคิดเห็น: foo bar stuff #Do not show this... morestuff evenmorestuff#Or this ฉันแค่ต้องการพิมพ์รหัสที่ไม่ใส่เครื่องหมายทั้งหมด: foo bar stuff morestuff evenmorestuff ความสามารถในการตัดความคิดเห็นออกจากไฟล์เป็นสิ่งสำคัญ ... วิธีการที่ดีคืออะไร

1
วิธีการตรวจสอบให้แน่ใจว่าสตริงที่ถูกสอดแทรกเข้าไปใน `การแทนที่ 'sed` จะหนี metachars ทั้งหมด
ฉันมีสคริปต์ที่อ่านข้อความกระแสและสร้างไฟล์คำสั่ง sed sed -fว่าจะดำเนินการต่อมาเป็น คำสั่ง sed ที่สร้างขึ้นมีลักษณะดังนี้: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g สมมติว่าสคริปต์ที่สร้างsedคำสั่งมีลักษณะดังนี้: while read cid fileid do cidpat="$(echo $cid | sed -e s/\\./\\\\./g)" echo 's/'"$cidpat"'/https:\/\/mysite.com\/files\/'"$fileid"'/g' >> sedscr done ฉันจะปรับปรุงสคริปต์เพื่อให้มั่นใจว่าอักขระเมตาของ regex ทั้งหมดในcidสตริงได้รับการยกเว้นและแก้ไขอย่างถูกต้องหรือไม่
21 sed  quoting 

1
ทำไม -a ใน“ #! / bin / sh -a” ส่งผลกระทบต่อ sed และ“ set -a” ไม่?
ถ้าฉันเรียกใช้ไฟล์. sh ต่อไปนี้: #!/bin/sh -a echo "a" | sed -e 's/[\d001-\d008]//g' ผลลัพธ์เป็นข้อผิดพลาด: sed: -e นิพจน์ # 1, อักขระ 18: ช่วงสิ้นสุดไม่ถูกต้อง แต่ถ้าฉันเรียกใช้ไฟล์. sh ต่อไปนี้: #!/bin/sh set -a echo "a" | sed -e 's/[\d001-\d008]//g' มันทำงานโดยไม่มีข้อผิดพลาด รหัสที่สองไม่ควรจะเทียบเท่ากับรหัสแรก? ทำไมข้อผิดพลาดในอันแรก?

1
คำสั่งทำให้ '1! G; h; $! d' กลับเนื้อหาของไฟล์ได้อย่างไร
คำถามของฉันมีความเกี่ยวข้องกับsedการแก้ปัญหา -specific ได้รับในคำตอบนี้สำหรับคำถามนี้grepping ย้อนกลับ sed/ grepแก้ปัญหาที่ฉันไม่สามารถที่จะถอดรหัสเป็นหนึ่งต่อไปนี้: sed '1!G;h;$!d' file มีคนช่วยถอดรหัสคำสั่งนี้ได้ไหม ฉันรู้จากความรู้ VI (M) ว่า G หมายถึงบรรทัดสุดท้ายของไฟล์และในบางกรณี (!) ตามด้วยที่อยู่ทำงานเล็กน้อยเช่นgrep -vที่จะบอกว่ามันจะไม่ตรงกับบรรทัดนั้น แต่โดยรวมสคริปต์แบบอินไลน์ข้างต้นอยู่เหนือฉัน
20 sed 

1
รูปแบบทดแทนภายในไฟล์ที่มีเนื้อหาของไฟล์อื่น
ฉันมีไฟล์ข้อความ ( devel.xml) ฉันเพิ่มคำ REPLACETHIS ลงไปเพื่อแทนที่สตริงนี้ด้วยเนื้อหาภายในไฟล์อื่น ( temp.txt) สิ่งที่ฉันมีอยู่ใกล้ที่สุดคือ: sed -i -e "/REPLACETHIS/r temp.TXT" -e "s///" devel.txt; สิ่งนี้แทรกเนื้อหาหลังสตริงและจากนั้นลบสตริงในภายหลัง นี่เป็นวิธีที่ดีที่สุดที่จะทำ?

1
แทนที่ข้อความด้วย sed และเก็บส่วนหนึ่งของข้อความต้นฉบับ
ฉันพยายามแปลง <id>1</id> <Name>ENTERPRISE RESOURCE PLANNING</Name> ไปที่: <column name="id">1</column> <column name="Name">ENTERPRISE RESOURCE PLANNING</column> ฉันกำลังสมมติว่าเครื่องมือที่ดีที่สุดสำหรับงานจะเป็นsedอย่างไร แต่ฉันไม่สามารถหาวิธีที่จะเก็บส่วนของข้อความต้นฉบับในส่วนแทนที่ ถ้าฉันทำ: $ sed -i 's/<.*>.*<.*>/<column name="\\1">\\2<\/column>/g' filename.xml ผลลัพธ์คือ: <column name="\1">\2</column> <column name="\1">\2</column> หรือทำคล้ายกันจากภายในviมันจะออกผลลัพธ์: <column name=""></column> <column name=""></column> ฉันจะทำให้เป็นเช่นนั้นได้\1และ\2เปลี่ยนกลับไปเป็นค่าดั้งเดิมได้อย่างไร

4
ใช้ sed / awk เพื่อลบอะไรหลังจากช่องว่างแรก
aaaaaaaa 09 bbbbbbbb 90 ccccccccccccccc 89 ddddd 09 ใช้ sed / awk / replace ในข้อความด้านบนฉันต้องการลบสิ่งที่เกิดขึ้นหลังจากช่องว่างแรกในแต่ละบรรทัด ตัวอย่างเช่นผลลัพธ์จะเป็น: aaaaaaaa bbbbbbbb ccccccccccccccc ddddd ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.
20 sed  grep  awk 

1
ใช้ sed กับเครื่องหมาย & (&)
ฉันใช้ sed เพื่อค้นหาและแทนที่รูปแบบภายในไฟล์ SAS ที่ฉันมีแทนที่จะเปลี่ยนทีละรายการ ปัญหาคือฉันพยายามแทนที่ตัวแปรมาโครและเมื่อฉันใช้เครื่องหมายและมันไม่ได้ประมวลผลอย่างถูกต้อง Here's my code: sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ดูเหมือนว่าจะผนวกและทำสิ่งที่ขี้ขลาดทุกชนิดด้วยข้อความต้นฉบับ คำถาม: ฉันจะแทนที่ข้อความที่มีเครื่องหมายภายในด้วยคำสั่ง sed ได้อย่างไร
19 sed  quoting  replace 

5
เติมตัวเลขศูนย์ให้เหลือ 2 หลักพร้อมเลข
การป้อนข้อมูล: 201103 1 /mnt/hdd/PUB/SOMETHING 201102 7 /mnt/hdd/PUB/SOMETH ING 201103 11 /mnt/hdd/PUB/SO METHING 201104 3 /mnt/hdd/PUB/SOMET HING 201106 1 /mnt/hdd/PUB/SOMETHI NG ผลลัพธ์ที่ต้องการ: 201103 01 /mnt/hdd/PUB/SOMETHING 201102 07 /mnt/hdd/PUB/SOMETH ING 201103 11 /mnt/hdd/PUB/SO METHING 201104 03 /mnt/hdd/PUB/SOMET HING 201106 01 /mnt/hdd/PUB/SOMETHI NG ฉันจะเพิ่ม a ได้0อย่างไรถ้ามีเพียงตัวเลขตัวเดียวเช่น1ในส่วน "วัน" ฉันต้องการรูปแบบวันที่นี้: YYYYMM DD
19 linux  sed  openwrt 

5
ฉันจะเรียงลำดับรายการด้วยระดับ major.minor.patch และบางครั้ง rc อย่างถูกต้องได้อย่างไร
ฉันต้องเรียงลำดับรายการต่อไปนี้ด้วยเชลล์สคริปต์และทำให้เวอร์ชันล่าสุดปรากฏที่ด้านล่างหรือด้านบน ฉันจะทำอย่างไรกับเครื่องมือของเชลล์เท่านั้น? release-5.0.0.rc1 release-5.0.0.rc2 release-5.0.0 release-5.0.1 release-5.0.10 release-5.0.11 release-5.0.13 release-5.0.14 release-5.0.15 release-5.0.16 release-5.0.17 release-5.0.18 release-5.0.19 release-5.0.2 release-5.0.20 release-5.0.21 release-5.0.22 release-5.0.23 release-5.0.24 release-5.0.25 release-5.0.26 release-5.0.27 release-5.0.28 release-5.0.29 release-5.0.3
18 shell-script  awk  sed  python  sort 

3
แยกส่วนของเส้นที่มีรูปแบบเฉพาะโดยใช้ awk, sed
ฉันมีคำถามเกี่ยวกับตัวดำเนินการ awk / sed ฉันมีไฟล์ขนาดใหญ่ที่มีชุดของบรรทัดต่อไปนี้ซ้ำแล้วซ้ำอีก Expression loweWallrhoPhi : sum=-6.97168e-09 Expression leftWallrhoPhi : sum=6.97168e-09 Expression lowerWallPhi : sum=-5.12623e-12 Expression leftWallPhi : sum=5.12623e-12 Expression loweWallrhoUSf : sum=-6.936e-09 Expression leftWallrhoUSf : sum=6.97169e-09 Expression lowerWallUSf : sum=-5.1e-12 Expression leftWallUSf : sum=5.12624e-12 ฉันต้องการแยกค่าหลังจากผลรวมในแต่ละกรณีในไฟล์แยกกัน เป็นไปได้ไหมที่จะทำในครั้งเดียว?

7
พิมพ์เส้นเลขคี่พิมพ์เส้นคู่
ฉันต้องการพิมพ์บรรทัดเลขคี่และเลขคู่จากไฟล์ ฉันพบเชลล์สคริปต์นี้ซึ่งใช้ประโยชน์จากเสียงสะท้อน #!/bin/bash # Write a shell script that, given a file name as the argument will write # the even numbered line to a file with name evenfile and odd numbered lines # in a text file called oddfile. # ------------------------------------------------------------------------- # Copyright (c) 2001 nixCraft project <http://cyberciti.biz/fb/> # …

7
ฉันจะเพิ่มแท็กให้กับจุดเริ่มต้นของหลายไฟล์ได้อย่างไร
ฉันต้องเพิ่มแท็ก PHP รอบ ๆ ไฟล์ ง่ายต่อการผนวกเข้าด้วยกัน find . -exec echo "?>" >> '{}' \; แต่ฉันจะเพิ่มแท็กไว้ล่วงหน้าได้<?phpอย่างไร

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