{"id":569,"date":"2025-09-10T12:47:43","date_gmt":"2025-09-10T09:47:43","guid":{"rendered":"https:\/\/destek.narhost.com\/?p=569"},"modified":"2026-09-12T15:01:58","modified_gmt":"2026-09-12T12:01:58","slug":"linux-sed-dosya-icinde-satir-silme","status":"publish","type":"post","link":"https:\/\/narhost.com\/destek\/linux-sed-dosya-icinde-satir-silme\/","title":{"rendered":"Linux&#8217;ta sed ile Dosya \u0130\u00e7inde Sat\u0131r Nas\u0131l Silinir"},"content":{"rendered":"<p class=\"kb-dogrulama\">Son do\u011frulama: Eyl\u00fcl 2026 \u00b7 Ubuntu 24.04 test sunucusunda denendi<\/p>\n<div id=\"hizli-cozum\" class=\"ai-box ai-box--cozum\">\n<p class=\"ai-box-title\">H\u0131zl\u0131 \u00e7\u00f6z\u00fcm<\/p>\n<p><strong>Sed ile sat\u0131r silme<\/strong> i\u00e7in <code>sed -i.bak 'desen'd dosya<\/code> komutunu kullan\u0131n; <code>desen<\/code> yerine bo\u015f sat\u0131r (<code>\/^$\/<\/code>), sat\u0131r numaras\u0131 (<code>3<\/code>) ya da i\u00e7inde ge\u00e7en bir kelime (<code>\/kelime\/<\/code>) yaz\u0131l\u0131r, <code>-i.bak<\/code> ise silmeden \u00f6nce dosyan\u0131n yede\u011fini otomatik al\u0131r.<\/p>\n<ol>\n<li>Bo\u015f sat\u0131rlar\u0131 silin: <code>sed -i.bak '\/^$\/d' dosya.txt<\/code><\/li>\n<li>Belirli bir sat\u0131r\u0131 silin (\u00f6rn. 3. sat\u0131r): <code>sed -i.bak '3d' dosya.txt<\/code><\/li>\n<li>\u0130\u00e7inde bir kelime ge\u00e7en sat\u0131rlar\u0131 silin: <code>sed -i.bak '\/kelime\/d' dosya.txt<\/code><\/li>\n<\/ol>\n<\/div>\n<table class=\"kb-uyg\">\n<tr>\n<th>Panel<\/th>\n<td>Yok \u2014 komut sat\u0131r\u0131ndan yap\u0131l\u0131r (VPS\/VDS y\u00f6netimsizdir)<\/td>\n<\/tr>\n<tr>\n<th>Sistem<\/th>\n<td>Ubuntu 22.04\/24.04, Debian 12, AlmaLinux 9 (GNU sed \u00f6nceden kurulu gelir)<\/td>\n<\/tr>\n<tr>\n<th>Yetki<\/th>\n<td>Dosya \u00fczerinde yazma izni olan kullan\u0131c\u0131; sistem dosyalar\u0131 i\u00e7in root<\/td>\n<\/tr>\n<tr>\n<th>Narhost \u00fcr\u00fcn\u00fc<\/th>\n<td><a href=\"https:\/\/narhost.com\/vps-sunucu\" title=\"Narhost VPS Sunucu paketleri\">VPS Sunucu<\/a>, VDS Sunucu<\/td>\n<\/tr>\n<\/table>\n<div class=\"kb-once\">\n<p class=\"label\">Ba\u015flamadan \u00f6nce<\/p>\n<ul>\n<li>D\u00fczenleyece\u011finiz dosyan\u0131n tam yolunu ve o dosyada yazma izniniz oldu\u011funu do\u011frulay\u0131n.<\/li>\n<li><code>grep 'desen' dosya<\/code> ile \u00f6nce hangi sat\u0131rlar\u0131n silinece\u011fini \u00f6nizleyin; sed komutu \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda geri sorulmadan siler.<\/li>\n<li>Sistem dosyalar\u0131nda (<code>\/etc<\/code> alt\u0131nda) \u00e7al\u0131\u015f\u0131yorsan\u0131z de\u011fi\u015fiklikten \u00f6nce ayr\u0131 bir yedek klas\u00f6r\u00fcne kopya al\u0131n.<\/li>\n<li>Tek t\u0131rnak (<code>'<\/code>) kullan\u0131n; kabuk, \u00e7ift t\u0131rnak i\u00e7indeki <code>$<\/code> ve <code>*<\/code> gibi karakterleri kendi yorumlayabilir.<\/li>\n<\/ul>\n<\/div>\n<h2>Sed ile Sat\u0131r Silme Ne \u0130\u015fe Yarar<\/h2>\n<p>Sed (stream editor), bir dosyay\u0131 sat\u0131r sat\u0131r okuyup \u00fczerinde arama-de\u011fi\u015ftirme yapan bir Linux komut sat\u0131r\u0131 arac\u0131d\u0131r. Sed ile sat\u0131r silme, dosyay\u0131 bir metin d\u00fczenleyicide a\u00e7madan; bo\u015f sat\u0131rlar\u0131 temizlemek, belirli bir sat\u0131r numaras\u0131n\u0131 kald\u0131rmak ya da i\u00e7inde belirli bir kelime ge\u00e7en sat\u0131rlar\u0131 \u00e7\u0131karmak i\u00e7in kullan\u0131l\u0131r. Log dosyalar\u0131n\u0131 sadele\u015ftirmek, yap\u0131land\u0131rma dosyas\u0131ndaki eski bir sat\u0131r\u0131 kald\u0131rmak ya da toplu metin i\u015fleme betiklerinde s\u0131k kullan\u0131lan bir y\u00f6ntemdir.<\/p>\n<p><code>-i<\/code> bayra\u011f\u0131 olmadan sed, sonucu yaln\u0131zca ekrana (standart \u00e7\u0131kt\u0131ya) yazar, dosyay\u0131 de\u011fi\u015ftirmez; <code>-i<\/code> eklenince dosyan\u0131n kendisi g\u00fcncellenir. Bu kartta \u00fc\u00e7 temel silme deseni ve her birinin ger\u00e7ek \u00e7\u0131kt\u0131s\u0131 g\u00f6sterilir.<\/p>\n<figure class=\"nh-sema\"><img src=\"https:\/\/narhost.com\/destek\/wp-content\/uploads\/2026\/09\/linux-sed-dosya-icinde-satir-silme-sema-narhost.webp\" alt=\"sed ile sat\u0131r silme \u2014 dosyay\u0131 inceleme, yedekli d\u00fczenleme ve sonucu do\u011frulama ad\u0131mlar\u0131\" width=\"1200\" height=\"500\" loading=\"lazy\" decoding=\"async\"><figcaption>\u00d6nce dosyay\u0131 incele, yedekli d\u00fczenle, sonucu kar\u015f\u0131la\u015ft\u0131r, yede\u011fi sakla.<\/figcaption><\/figure>\n<h2>Sed ile Sat\u0131r Silme Ad\u0131mlar\u0131<\/h2>\n<ol class=\"kb-adimlar\">\n<li><strong>\u00d6nce dosyan\u0131n mevcut h\u00e2lini g\u00f6r\u00fcn:<\/strong>\n<pre><code class=\"language-bash\">cat -A ornek.txt<\/code><\/pre>\n<p class=\"kb-cikti\">Test sunucusunda al\u0131nan ger\u00e7ek \u00e7\u0131kt\u0131: <code>satir1 giris$<\/code> \/ <code>$<\/code> (bo\u015f sat\u0131r) \/ <code>satir3 eski-surum notu$<\/code> \/ <code>$<\/code> (bo\u015f sat\u0131r) \/ <code>satir5 son$<\/code>. Sat\u0131r sonundaki <code>$<\/code> i\u015fareti <code>cat -A<\/code>&#8216;n\u0131n g\u00f6sterdi\u011fi sat\u0131r sonu karakteridir, dosyada yoktur.<\/p>\n<\/li>\n<li><strong>Bo\u015f sat\u0131rlar\u0131 silin:<\/strong>\n<pre><code class=\"language-bash\">sed -i.bak '\/^$\/d' ornek.txt<\/code><\/pre>\n<p class=\"kb-cikti\">Test sunucusunda al\u0131nan ger\u00e7ek \u00e7\u0131kt\u0131, komut sonras\u0131 <code>cat ornek.txt<\/code>: <code>satir1 giris<\/code> \/ <code>satir3 eski-surum notu<\/code> \/ <code>satir5 son<\/code>. \u0130ki bo\u015f sat\u0131r kald\u0131r\u0131ld\u0131, <code>ornek.txt.bak<\/code> ad\u0131nda de\u011fi\u015fmemi\u015f orijinal dosya olu\u015ftu.<\/p>\n<\/li>\n<li><strong>Belirli bir sat\u0131r numaras\u0131n\u0131 silin (\u00f6rne\u011fin 2. sat\u0131r):<\/strong>\n<pre><code class=\"language-bash\">sed -i.bak '2d' ornek.txt<\/code><\/pre>\n<p class=\"kb-cikti\">Test sunucusunda al\u0131nan ger\u00e7ek \u00e7\u0131kt\u0131: yukar\u0131daki \u00fc\u00e7 sat\u0131rl\u0131k dosyada 2. sat\u0131r (<code>satir3 eski-surum notu<\/code>) silindi, sonu\u00e7 <code>satir1 giris<\/code> \/ <code>satir5 son<\/code> oldu.<\/p>\n<\/li>\n<li><strong>\u0130\u00e7inde belirli bir kelime ge\u00e7en sat\u0131rlar\u0131 silin:<\/strong>\n<pre><code class=\"language-bash\">sed -i.bak '\/eski-surum\/d' ornek.txt<\/code><\/pre>\n<p class=\"kb-cikti\">Test sunucusunda al\u0131nan ger\u00e7ek \u00e7\u0131kt\u0131: &#8220;eski-surum&#8221; ge\u00e7en <code>satir3 eski-surum notu<\/code> sat\u0131r\u0131 silindi, sonu\u00e7 yine <code>satir1 giris<\/code> \/ <code>satir5 son<\/code> oldu. Ayn\u0131 mant\u0131kla <code>\/^kelime\/d<\/code> bir kelimeyle ba\u015flayan, <code>\/kelime$\/d<\/code> bir kelimeyle biten sat\u0131rlar\u0131 siler; s\u00f6z dizimi <a href=\"https:\/\/man7.org\/linux\/man-pages\/man1\/sed.1.html\" title=\"sed(1) - Linux manual page\" target=\"_blank\" rel=\"noopener\">GNU sed&#8217;in resmi man sayfas\u0131nda<\/a> tan\u0131ml\u0131d\u0131r.<\/p>\n<\/li>\n<\/ol>\n<div class=\"warn-box\">\n<p class=\"label\">Dikkat<\/p>\n<p><code>sed -i<\/code> komutunu <strong>yedeksiz<\/strong> (uzant\u0131 vermeden) \u00e7al\u0131\u015ft\u0131r\u0131rsan\u0131z silinen sat\u0131rlar geri al\u0131namaz; bu y\u00fczden her zaman <code>sed -i.bak<\/code> gibi bir uzant\u0131yla \u00e7al\u0131\u015f\u0131n, komut dosyan\u0131n yan\u0131na <code>dosya.bak<\/code> ad\u0131nda de\u011fi\u015fmemi\u015f bir kopya b\u0131rak\u0131r. Yanl\u0131\u015f bir silme yapt\u0131ysan\u0131z <code>mv dosya.bak dosya<\/code> ile eski h\u00e2line d\u00f6nebilirsiniz. <code>\/etc<\/code> alt\u0131ndaki bir yap\u0131land\u0131rma dosyas\u0131nda \u00e7al\u0131\u015f\u0131yorsan\u0131z bu yedek tek geri d\u00f6n\u00fc\u015f yolunuzdur.<\/p>\n<\/div>\n<h2>Do\u011frulama<\/h2>\n<div class=\"success-box\">\n<p class=\"label\">Sonu\u00e7<\/p>\n<p><code>cat dosya<\/code> ile silmek istedi\u011finiz sat\u0131rlar\u0131n ger\u00e7ekten kalkt\u0131\u011f\u0131n\u0131, kalmas\u0131 gereken sat\u0131rlar\u0131n yerinde durdu\u011funu g\u00f6zle kontrol edin. Ard\u0131ndan <code>diff dosya.bak dosya<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n; \u00e7\u0131kt\u0131da yaln\u0131zca sildi\u011finiz sat\u0131rlar <code>&lt;<\/code> i\u015faretiyle g\u00f6r\u00fcnmelidir, ba\u015fka fark yoksa i\u015flem do\u011fru tamamlanm\u0131\u015ft\u0131r.<\/p>\n<\/div>\n<h2>H\u00e2l\u00e2 \u00e7\u00f6z\u00fclmediyse<\/h2>\n<ul>\n<li><strong>&#8220;sed: -e expression #1, char 2: unknown command&#8221; hatas\u0131 al\u0131yorsunuz.<\/strong> Tek t\u0131rnak yerine \u00e7ift t\u0131rnak kullan\u0131ld\u0131\u011f\u0131nda kabuk <code>$<\/code> veya <code>!<\/code> gibi karakterleri kendi yorumlam\u0131\u015f olabilir; deseni tek t\u0131rnak i\u00e7ine al\u0131n.<\/li>\n<li><strong>Hi\u00e7bir sat\u0131r silinmedi ama hata da yok.<\/strong> Desen dosyadaki metinle birebir e\u015fle\u015fmiyordur; b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131n\u0131 kald\u0131rmak i\u00e7in desenin sonuna <code>I<\/code> ekleyin: <code>\/kelime\/Id<\/code>.<\/li>\n<li><strong>Yanl\u0131\u015fl\u0131kla \u00f6nemli sat\u0131rlar\u0131 sildiniz.<\/strong><code>-i.bak<\/code> ile \u00e7al\u0131\u015ft\u0131ysan\u0131z <code>mv dosya.bak dosya<\/code> ile geri d\u00f6n\u00fcn; yedeksiz \u00e7al\u0131\u015ft\u0131ysan\u0131z ve dosya bir Narhost yede\u011finde varsa <a href=\"https:\/\/narhost.com\/destek\/yedekten-nasil-geri-yukleme-yapilir\/\" title=\"Yedekten Nas\u0131l Geri Y\u00fckleme Yap\u0131l\u0131r \u2014 Narhost Destek\">yedekten geri y\u00fckleme<\/a> kart\u0131na bak\u0131n.<\/li>\n<li><strong>De\u011fi\u015fikli\u011fi \u00e7ok say\u0131da dosyada tekrarlaman\u0131z gerekiyor.<\/strong> Ayn\u0131 komutu birden fazla dosyada uygulamadan \u00f6nce <a href=\"https:\/\/narhost.com\/destek\/linux-buyuk-boyutlu-dosyalari-nasil-bulurum\/\" title=\"Linux&#039;ta B\u00fcy\u00fck Boyutlu Dosyalar\u0131 Bulma \u2014 Narhost Destek\">dosya arama kart\u0131ndaki<\/a><code>find<\/code> y\u00f6ntemiyle dosya listesini \u00f6nce g\u00f6zden ge\u00e7irin, sonra <code>find . -name '*.conf' -exec sed -i.bak '\/kelime\/d' {} \\;<\/code> ile toplu uygulay\u0131n.<\/li>\n<\/ul>\n<div class=\"cta-box\">\n<p class=\"label\">Narhost deste\u011fi<\/p>\n<p>Talebe \u015funlar\u0131 ekleyin: sunucu IP adresiniz, \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z dosyan\u0131n tam yolu, \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z <code>sed<\/code> komutu ve ald\u0131\u011f\u0131n\u0131z hata mesaj\u0131.<\/p>\n<p><a class=\"cta-btn\" href=\"https:\/\/narhost.com\/submitticket.php\" title=\"Narhost destek talebi olu\u015ftur\">Destek talebi a\u00e7<\/a><\/div>\n<div class=\"kb-ilgili\">\n<p class=\"label\">Sonraki ad\u0131mlar<\/p>\n<ul>\n<li><a href=\"https:\/\/narhost.com\/destek\/vps-vds-ilk-kurulum-rehberi\/\" title=\"VPS VDS Sunucu \u0130lk Kurulum Rehberi (10 Ad\u0131mda G\u00fcvenli Kurulum) \u2014 Narhost Destek\">VPS ilk kurulum rehberinin tamam\u0131<\/a><\/li>\n<li><a href=\"https:\/\/narhost.com\/destek\/linux-log-dosyalari-nasil-okunur\/\" title=\"Linux Sunucu Log Dosyalar\u0131 Nerede, Nas\u0131l Okunur (journalctl, \/var\/log) \u2014 Narhost Destek\">Log dosyalar\u0131n\u0131 sadele\u015ftirirken: log dosyalar\u0131 nas\u0131l okunur<\/a><\/li>\n<li><a href=\"https:\/\/narhost.com\/destek\/konsol-baglantisi-ile-sunucuya-nasil-erisilir\/\" title=\"Konsol Ba\u011flant\u0131s\u0131 ile Sunucuya Nas\u0131l Eri\u015filir (SSH \u00c7al\u0131\u015fmad\u0131\u011f\u0131nda) \u2014 Narhost Destek\">Yanl\u0131\u015f d\u00fczenleme sunucuyu kilitlerse: konsol ba\u011flant\u0131s\u0131<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"kb-faq\">\n<h2>S\u0131k\u00e7a sorulan sorular<\/h2>\n<h3>Sed ile sat\u0131r silme i\u015flemi geri al\u0131nabilir mi?<\/h3>\n<p>Yaln\u0131zca <code>-i.bak<\/code> gibi bir yedek uzant\u0131s\u0131yla \u00e7al\u0131\u015ft\u0131ysan\u0131z; bu durumda <code>mv dosya.bak dosya<\/code> ile eski h\u00e2line d\u00f6nersiniz. Yedeksiz <code>-i<\/code> kullan\u0131ld\u0131ysa de\u011fi\u015fiklik geri al\u0131namaz.<\/p>\n<h3>sed -i ile sed &#8216;desen&#8217; &gt; yeni_dosya aras\u0131ndaki fark nedir?<\/h3>\n<p><code>sed -i<\/code> dosyan\u0131n kendisini de\u011fi\u015ftirir. Y\u00f6nlendirme (<code>&gt;<\/code>) ise orijinal dosyaya dokunmadan sonucu yeni bir dosyaya yazar; orijinal dosyay\u0131 korumak isterseniz bu ikinci y\u00f6ntem daha g\u00fcvenlidir.<\/p>\n<h3>Birden fazla deseni tek komutla silebilir miyim?<\/h3>\n<p>Evet, <code>sed -i.bak -e '\/desen1\/d' -e '\/desen2\/d' dosya<\/code> ya da <code>sed -i.bak '\/desen1\/d;\/desen2\/d' dosya<\/code> ile ayn\u0131 anda birden fazla desen silinebilir.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Sed ile sat\u0131r silme: -i.bak ile yedekli \u00e7al\u0131\u015fma, bo\u015f sat\u0131rlar\u0131, belirli bir sat\u0131r numaras\u0131n\u0131 ve i\u00e7inde kelime ge\u00e7en sat\u0131rlar\u0131 silme komutlar\u0131, test sunucusunda al\u0131nan ger\u00e7ek \u00e7\u0131kt\u0131lar ve geri alma y\u00f6ntemi.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,13],"tags":[256],"class_list":["post-569","post","type-post","status-publish","format-standard","hentry","category-vds-server","category-vps-server","tag-sed"],"meta_box":[],"_links":{"self":[{"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":2,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"predecessor-version":[{"id":749,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/posts\/569\/revisions\/749"}],"wp:attachment":[{"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/narhost.com\/destek\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}