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

"sed" ("stream editor") เป็นยูทิลิตี Unix ที่แยกวิเคราะห์และแปลงไฟล์ข้อความ

2
การใช้ sed เพื่อแทนที่ตัวแปร * large * ในไฟล์
ฉันมีล็อกไฟล์จำนวนมากบนกล่อง linux ฉันต้องล้างข้อมูลที่มีความละเอียดอ่อนก่อนส่งให้บุคคลที่สาม ฉันได้ใช้สคริปต์ด้านล่างในครั้งก่อนหน้าเพื่อทำงานนี้และทำงานได้ยอดเยี่ยม (สคริปต์ถูกสร้างขึ้นด้วยความช่วยเหลือจากที่นี่ :-)): #!/bin/bash help_text () { cat <<EOF Usage: $0 [log_directory] [client_name(s)] EOF exit 0 } CMDLINE=""$0" "$@"" if [ -z "$1" ]; then help_text else pattern="" delim="" n=1 counter=`find "$1" -name *.gz |sort |wc -l` BAKIFS=$IFS IFS=$(echo -en "\n\b") exec 3<&0 exec 0<"$2" while read …

2
ฉันจะแทรกรูปแบบการจับคู่ดั้งเดิม (OLD STRING) ลงในผลลัพธ์ได้อย่างไร (NEW STRING) โดยใช้คุณลักษณะการค้นหา / แทนที่ของ Microsoft Word
ฟีเจอร์ค้นหา / แทนที่ Microsoft Word ดูเหมือนว่าจะเป็นแบบตัวต่อตัว สมมติว่าเรามีหมายเลขเอกสารคำล้อมรอบด้วยวงเล็บเช่น (6) และเราต้องการลบวงเล็บและวางจุดท้ายเช่น 6. สมมติว่าเราเปิดค้นหา / แทนที่ จากนั้นเราป้อนตัวเลือกต่อไปนี้: FIND WHAT: (^#) REPLACE WITH: 5. ด้านบนจะมีผลดังต่อไปนี้: .--------.-------. | BEFORE | AFTER | .--------.-------. | (1) | 5. | .--------.-------. | (2) | 5. | .--------.-------. | (3) | 5. | .--------.-------. | (4) | 5. …

1
sed ให้ข้อผิดพลาด "ลำดับไบต์ที่ผิดกฎหมาย" เมื่อพยายามแทนที่อักขระ
ฉันใช้“ เทอร์มินัล” ใน Mac OS X 10.10 (โยเซมิตี) และฉันพยายามลบการเกิดขึ้นทั้งหมดของ a จากไฟล์โดยใช้ sed: sed 's/a//g' file ซึ่งทำให้ฉันข้อผิดพลาดต่อไปนี้: sed: RE error: illegal byte sequence sed 's/a//' file ทำงานได้โดยไม่มีปัญหา ข้อผิดพลาดปรากฏขึ้นเมื่อฉันเพิ่ม g ปรับปรุงเพื่อการแสดงออกปกติ

1
sed จัดเรียงบรรทัดทั้งหมดเป็นบรรทัดสุดท้ายในไฟล์ Bash script
ฉันมีไฟล์ที่มีเส้นด้านล่าง Dev_Campaign_1873.rpm Dev_Campaign_1987.rpm Dev_Campaign_9876.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact พยายามรับเอาต์พุตไปยังไฟล์ดังต่อไปนี้โดยใช้ sed หรือคำสั่งอื่น ๆ http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_1873.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_1987.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_9876.rpm

0
คำสั่ง sed ลบแท็กปิดพาเรนต์ในไฟล์ xml
IAM ใช้คำสั่ง sed เพื่อแทนที่สตริงด้วยอันอื่นในไฟล์ xml โดยใช้คำสั่งด้านล่าง sed "s/one/two/g" /data/common/codeset-mapper.xml > /data/codeset-mapper.xml แต่แท็กพาเรนต์ปิดกำลังถูกลบออก มีวิธีแก้ไขไหม?

0
SED -f FileParams.txt FileIN.xml> FileOUT.xml
ฉันมีปัญหากับคำสั่ง sed ฉันต้องการแทนที่พารามิเตอร์จาก File Params.txt บน File IN.xml และสร้าง FileOut.txt ปัญหาของฉันคือ params ทั้งหมดที่ฉันมีใน FileParams.txt (เช่น: XXXX; YYYY; g) พวกเขาจะไม่ถูกแทนที่ทั้งหมดใน FileIN.txt ฉันจะสร้างยังรายงานเพื่อทราบ params แม่มดจะถูกแทนที่ใน fileIN ขอบคุณ

0
เป็นไปได้อย่างไรที่จะ“ หมอบ” ผ่านพอร์ต?
ตัวอย่างเช่น: เซิร์ฟเวอร์ telnet daemon กำลังสะท้อน "Hello there user" เพื่อเป็นตัวอย่างให้บอกว่าเวอร์ชันของ daemon ไม่สามารถเปลี่ยนแปลงได้ในขณะนี้และเราต้องทำการทักทายให้ดีขึ้น ลูกค้าเชื่อมต่อแบบนี้: telnet 127.0.0.1 1111 >Hello there user. มันจะเป็นเรื่องง่ายที่จะดึงดูดลูกค้า telnet 127.0.0.1 1111 | sed 's/user/Dear user/g' >Hello there Dear user. แต่สิ่งนี้ไม่เป็นที่ต้องการ เราต้องการให้ลูกค้าเชื่อมต่อกันตามปกติ เป็นไปได้ไหมที่จะติดโดยตรงบน daemon พอร์ต 1111 เพื่อแสดงคำทักทายที่เปลี่ยนแปลงไป แล้วยังไง?

1
terminal Mac: Sed regex โดยแยกส่วนของสตริง
ฉันมีสตริงตรงเส้นทางไฟล์ /Users/dengjiangzhou/Documents/源码/198/李宏毅-机器学习2017秋季.txt, ฉันต้องการแยกเส้นทางของโฟลเดอร์ /Users/dengjiangzhou/Documents/源码/198/ที่จะได้รับ นี่คือสิ่งที่ฉันพยายาม echo "/Users/dengjiangzhou/Documents/源码/198/李宏毅-机器学习2017秋季.txt " | sed 's@.*\(/.+\)@\1@p' /Users/dengjiangzhou/Documents/源码/198/李宏毅-机器学习2017秋季.txt ผมใช้กลุ่มจับ regex พยายามที่จะจับภาพกลุ่มหนึ่ง/李宏毅-机器学习2017秋季.txtและแทนที่ด้วย, ดูเหมือนว่ากลุ่มการจับภาพ regex นั้นมีผลต่อการจับคู่ตั้งแต่ต้นจนจบ แล้วฉันจะได้รับ /Users/dengjiangzhou/Documents/源码/198 ฉันอ่านSed regex แล้วแยกส่วนของสตริงในเทอร์มินัล Macซ้ำแล้วซ้ำอีก หวังว่าจะได้รับความช่วยเหลือเพื่อน อยากที่จะได้รับ/Users/dengjiangzhou/Documents/源码/198/, /Users/dengjiangzhou/Documents/源码/198 ไม่ดี. ความคิดที่ดี?
mac  terminal  regex  sed 

1
การลบบรรทัดว่างออกจาก. xml โดยใช้สคริปต์ unix
ฉันต้องการลบบรรทัดว่างออกจากไฟล์ XML แต่หลังจากใช้คำสั่งsed -e '/^$/d' file.xml > file2.xmlแล้วจะไม่แสดงบันทึกตัวอย่าง ฉันเปิดไฟล์ XML ด้วย Notepad ++ เพื่อตรวจสอบจำนวนเรคคอร์ด
sed 

1
รูปแบบจับคู่อักขระบางตัวหลังเครื่องหมายทับสุดท้าย
ฉันพยายามที่จะทำต่อไปนี้: -แฟ้มรายการหรือไดเรกทอรีที่มีตัวอักษรบางอย่างจากนั้นเฉือนที่ผ่านมาในการค้นหาเส้นทางสำหรับตัวละครโดยเฉพาะอย่างยิ่งและแทนที่พวกเขาด้วย ฉันสร้างต่อไปนี้ใน regexpr แต่มันไม่ทำอะไรกับsed: find . -name "*[<>:\\|?]*" | while read -r; do mv "${REPLY}" \ "`echo ${REPLY} | sed "s/([^/]+$)*([<>:\\|?])/-/g"`"; done
bash  regex  find  sed 

1
กรองข้อมูลด้วย sed
ฉันต้องการความช่วยเหลือ ฉันมีไฟล์เช่น sometext line 1 sometext line 2 SU0000 ID ID ID sometext line 3 sometext line 4 sometext line 5 sometext line 6 SU0000 ID ID ID sometext line 7 sometext line 8 ฉันต้องการที่จะกรองข้อความเช่นที่เป็น sometext line 2 SU0000 ID ID ID sometext line 6 SU0000 ID ID ID กล่าวอีกนัยหนึ่งฉันต้องการรับบรรทัดก่อนรูปแบบและทุกบรรทัดหลังจากที่เริ่มต้นด้วย …
sed 

2
จัดเรียงตาม ID จากนั้นเรียงลำดับตามวันที่จากนั้นลบบรรทัดที่มีวันที่เก่ากว่าออก
ฉันมีไฟล์ที่คั่นด้วยแท็บสองไฟล์ แต่ละไฟล์มีโครงสร้างดังนี้: ID Title Rating Date_Rated สิ่งที่ฉันต้องการจะทำคือการรวมไฟล์เหล่านี้ทั้งหมดเป็นไฟล์เดียวและเก็บคะแนนล่าสุดเท่านั้น file1 อาจมีข้อมูลเช่น: 70202148 Sherlock Holmes: A Game of Shadows 5 28/12/13 file2 อาจมีข้อมูลเช่น: 70202148 Sherlock Holmes: A Game of Shadows 4.5 25/12/13
sed  sorting  awk  uniq  join 

1
วิธีการแสดงส่วนเฉพาะจากบรรทัดใน linux?
สมมติว่าฉันมีไฟล์ที่มีบรรทัดต่อไปนี้: [{"name”:”10.0.0.1”,”address":"10.0.0.1”,”subscriptions["all"],"version":"0.0.0”,”timestamp":1450270166},{"name":"10.0.0.2","address":"10.0.0.2","subscriptions":["all"],"version”:”0.0.0”,”timestamp":1450390819}] ที่นี่ฉันต้องได้รับผลลัพธ์ที่ต้องการ name:10.0.0.1 name:10.0.0.2 ความคิดใด ๆ
-1 linux  command-line  bash  sed  awk 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.