Oqim muharriri (sed)


ULASHISH

sed buyrug‘idan foydalanish

sed buyrug‘i — kirish oqimi (fayl yoki pipe orqali uzatilgan ma’lumotlar) ustida oddiy matn o‘zgartirishlarini bajarish uchun ishlatiladigan oqim muharriri (stream editor).

Bu fayllar yoki ma’lumotlar oqimiga tezkor tahrirlar kiritish uchun kuchli vosita.

Quyidagi barcha misollarda example_text.txt faylidan foydalaniladi:

Hello World
Line 1
Line 2

Asosiy foydalanish

Fayldagi shablonning birinchi uchragan joyini almashtirish uchun sed 's/old/new/' filename buyrug‘idan foydalaning:

Misol: matnni almashtirish

sed 's/World/Bash/' example_text.txt
Hello Bash
Line 1
Line 2

Parametrlar

sed buyrug‘ida uning ishlashini o‘zgartiruvchi parametrlar mavjud:

  • -i - Fayllarni alohida saqlash talab qilinmasdan bevosita tahrirlash
  • -e - Skriptni bajariladigan buyruqlarga qo‘shish
  • -n - Qatorlarni avtomatik chiqarmaslik
  • -r - Kengaytirilgan regulyar ifodalardan foydalanish
  • -f - Skriptni fayldan qo‘shish
  • -l - l buyrug‘i uchun qator uzunligini belgilash


Fayllarni joyida tahrirlash

-i parametri fayllarni alohida saqlash talab qilinmasdan bevosita tahrirlash imkonini beradi.

Bu parametrsiz sed natijani standart chiqishga chiqaradi va o‘zgarishlarni saqlash uchun uni faylga yo‘naltirishingiz kerak bo‘ladi.

Misol: fayllarni joyida tahrirlash

sed -i 's/World/Bash/g' example_text.txt
cat example_text.txt
Hello Bash
Line 1
Line 2

Avtomatik chiqarishni o‘chirish

-n parametri pattern space (ishchi bufer) tarkibining avtomatik chiqarilishini o‘chiradi.

Standart holatda sed kirishdagi har bir qatorni natijaga chiqaradi. -n parametridan foydalanib, qaysi qatorlar chiqarilishini boshqarishingiz mumkin — odatda bu p buyrug‘i yordamida amalga oshiriladi.

Misol: avtomatik chiqarishni o‘chirish

sed -n 's/World/Bash/p' example_text.txt
Hello Bash

Kengaytirilgan regulyar ifodalar

-r parametri kengaytirilgan regulyar ifodalardan foydalanish imkonini beradi. Ular asosiy regulyar ifodalarga qaraganda shablonlarni moslashtirishning kuchliroq imkoniyatlarini taqdim etadi.

Bu parametrsiz sed asosiy regulyar ifodalardan foydalanadi.

Misol: kengaytirilgan regulyar ifodalar

sed -r 's/(World|Line)/Hello/g' example_text.txt
Hello Hello
Hello 1
Hello 2

Fayldagi skript

-f parametri skriptni fayldan qo‘shish imkonini beradi. Bu murakkab yoki bir nechta sed buyrug‘ini bajarish uchun foydali.

Bu parametrsiz skriptni bevosita buyruqlar qatorida ko‘rsatishingiz kerak.

script.sed faylining tarkibi:

s/World/Bash/g

Misol: fayldagi skript

sed -f script.sed example_text.txt
Hello Bash
Line 1
Line 2

Qator uzunligini belgilash

-l parametri l buyrug‘i uchun qator uzunligini belgilaydi. Bu buyruq qatorlarni chop etilmaydigan belgilari bilan birga chiqaradi.

Bu parametr uzun qatorlar bilan ishlaganda natijani formatlash uchun foydali.

Misol: qator uzunligini belgilash

sed -l 10 'l' example_text.txt
Hello Wor\
ld$
Hello World
Line 1$
Line 1
Line 2$
Line 2

Bu parametr qator tugaganini bildirish uchun har bir qator oxiriga $ belgisini qo‘shadi.


Natijani faylga yo‘naltirish

sed kiritgan o‘zgarishlarni faylga saqlash uchun natijani yangi faylga yo‘naltirishingiz mumkin. Bu asl faylni qayta yozishni istamaganingizda foydali.

Misol: natijani yo‘naltirish

sed 's/World/Bash/' example_text.txt > new_example_text.txt
cat new_example_text.txt
Hello Bash
Line 1
Line 2

sed buyrug‘i yordamida matnni murakkab qayta ishlash

Sed matnni qayta ishlashga oid murakkab vazifalarni bajara oladi. Masalan, sed 's/^/Prefix: /' example_text.txt buyrug‘i har bir qator boshiga prefiks qo‘shadi.

Misol: matnni murakkab qayta ishlash

sed 's/^/Prefix: /' example_text.txt
Prefix: Hello World
Prefix: Line 1
Prefix: Line 2

Keng tarqalgan xatolar va ularni bartaraf etish

sed buyrug‘idan foydalanganda quyidagi kabi xatolarga duch kelishingiz mumkin:

  • "sed: command garbled" - Buyruq sintaksisini tekshiring.
  • "sed: can't read file" - Fayl yo‘li to‘g‘ri va unga kirish mumkinligiga ishonch hosil qiling.

Xatolarni aniqlash bo‘yicha maslahatlardan biri — oraliq natijalarni chiqarish va buyruq mantiqini tekshirish uchun echo buyrug‘idan foydalanish.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!