สอน PHP ASP ASP.NET C# JSP Javascript Java Perl IT Solution Opensource Source Code MVC Software Freeware Shareware
 หน้าแรก  |  ข่าวสารต่างๆ  |  ค้นหาบทความ

Sed command

วิธีแก้ไขข้อมูลในไฟล์ โดยทำการค้นหาบรรทัดที่ต้องการโดยใช้ regular ก่อน จากนั้นจึงใช้ regular หาข้อมูลในบรรทัดนั้นเพื่อ replace อีกทีนึง

ตัวอย่างข้อมูล input

some text mystring some other text
some text mystring a searchstring
just some more text

รัน command ข้างล่างนี้:

sed -i -e '/searchstring/ s/mystring/1/ ; /searchstring/! s/mystring/0/' $target

จะได้ผลลัพธ์เป็น

some text 0 some other text
some text 1 a searchstring
just some more text

 

คำอธิบาย (Explanation)

The script contains two substitute (s) commands separated by a semicolon.

The substitute command accepts an optional address range that select which lines the substitution should take place.

In this case regexp address was used to select lines containing the searchstring for the first command; and the lines that do not contain the searchstring (note the exclamation mark after the regexp negating the match) for the second one.

Edit

This command will perform better and produce just the same result:

sed -i -e '/searchstring/ s/mystring/1/ ; s/mystring/0/' $target

The point is that commands are executed sequentially and thus if there is still a mystring substring in the current line after the first command finished then there is no searchstring in it for sure.

  
แผนผังเว็บไซต์ Codethep.com
ข่าวสารต่างๆ เว็บบอร์ด ค้นหาบทความ

ติดตาม ข่าวสารจาก Codethep ผ่านช่องทางข้างล่างนี้
Codethep:  Facebook Codethep  Twitter Codethep
- เกี่ยวกับ Codethep
- ติดต่อ Codethep
- ลงโฆษณากับ Codethep
- ช่วยเหลือ