Kumaha ngahapus garis khusus tina file nganggo sed

Dina kasempetan anu tangtu, urang kedah ngahapus garis khusus tina file atanapi sababaraha, contona, kuring kajantenan yén kuring ngagaduhan daptar file sareng kedah ngahapus garis # 27 tina sadayana (baris # 27 mangrupikeun ACL , norma, aturan, konfigurasi), naha kuring tiasa ngédit file ku file atanapi kuring ngan tiasa ngahontal naon anu kuring peryogikeun ku paréntah séd sareng skrip bash (opsional).

Tapi, hayu urang nyobian hiji file anu rada saderhana.

Kami gaduh file na distros-deb.txt anu ngandung ieu:

Debian

kubuntu

archlinux

solus

mint

Kalayan kecap séjén, file na distros-deb.txt nyaéta dimana urang bakal nempatkeun distro anu berbasis di Debian, tapi di dinya kami ningali yén dina garis # 3 aya "archlinux", distro anu jelas-jelas teu aya hubunganana sareng Debian, janten urang kedah ngaleungitkeun jalur éta. Pikeun ngaleungitkeun garis # 3 tina file éta kami bakal nempatkeun ieu:

sed "3d" distros-deb.txt > distros-deb-ok.txt

Ngajelaskeun garis ieu rada gampang, kalayan haus "3d" kami nunjukkeun yén kami bakal mupus garis # 3, kalayan distros-deb.txt Kami nunjukkeun file naon anu kedah dianggo, nyaéta ngahapus garis # 3 tina file ieu, dugi ka dieu upami urang pencét Enter éta bakal nunjukkeun naon anu kami pikahoyong tapi di terminal, tah ku > distros-deb-ok.txt kami nunjukkeun yén tinimbang nunjukkeun hasilna dina terminal, nempatkeun kana file anu nganggo nami ieu.

Naon anu saderhana?

Ogé, urang tiasa ulah ngagunakeun > distros-deb-ok.txt ngagunakeun parameter ditangtoskeun tina séd, parameter na -i

Nyaéta, upami urang hoyong ngahapus garis tina file sareng nyimpenna nganggo nami anu sami (sareng sanés dina file anu sanés), kantun nambihan parameter na -i :

sed -i "3d" distros-deb.txt

Ieu bakal ngahapus garis # 3 tina distros-deb.txt teras nyimpenna.

Kumaha upami kuring hoyong sababaraha garis, nyaéta ngahapus garis # 3 tapi ogé # 4 sareng # 5? Pikeun ngahontal ieu urang nempatkeun kisaran 3 dugi ka 5, nyaéta:

sed -i "3,5d" distros-deb.txt

Sareng éta bakal nunjukkeun kuring ngan ukur debian sareng kubuntu 😀

Janten kumaha upami kuring hoyong ngahapus tina garis 2 dugi ka anu terakhir, nalika kuring henteu terang total garisna?

Éta bakal cekap nganggo simbol dolar - »$

sed -i "2,$d" distros-deb.txt

Upami anjeun hoyong ngaleungitkeun tina garis kahiji ka # 4 maka urang ngan saukur nempatkeun nilai 1 di awal:

sed -i "1,4d" distros-deb.txt

Ieu parantos aya sadayana, tip anu kapaké pisan nalika anjeun badé ngadamel skrip bash pikeun ngajadikeun otomatis tugas sareng anjeun kedah ngarobih sareng ngaleungitkeun garis file konfigurasi, pikeun ngarobih anu tiasa urang anggo séd o perl, ogé pikeun ngaleungitkeun urang parantos terang kumaha ngalaksanakeunana kalayan sed 😉

Wasalam


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

16 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   mss-devel cenahna

    Kontribusi anu saé pisan 😉

    1.    KZKG ^ Gaara cenahna

      hatur nuhun

      Ku jalan kitu, kami nampi email anjeun ayeuna kuring ngajawab anjeun 😀

      Wasalam

  2.   teu aya namina cenahna

    Salaku imam agung terminal, sérver sareng sambungan ssh kuring sumping ka anjeun, aduh KZKG ^ Gaara anu hébat, sareng kuring naroskeun ka anjeun: dimana kuring tiasa kéngingkeun tutorial dina tingkat kabodoan kuring anu ngamungkinkeun kuring ngagunakeun sambungan ssh antara dua mesin jauh dina jaringan anu béda pikeun dibagi file téks, pdf, gambar sareng sora (mp3)….

    🙂

    Serius, naha anjeun tiasa ngantunkeun kuring dina hal ieu, kuring gaduh dua mesin, hiji di tempat damel sareng hiji di bumi sareng kuring peryogi hubungan ssh diantawisna (sabab sakumaha anu kuring pahami, ssh ngamungkinkeun eusi dibagi antara mesin, naha leres?).
    Sareng upami kuring lepat, aplikasi naon anu anjeun nyarankeun?
    Sareng dimana kuring mendakan tutorial dasar dina hal ieu?

    1.    -spiker- cenahna

      scp.

      scp user @ machine_address: jalur pangguna @ machine_address: jalur.

      Sintaksis anu sami sareng cp, sumber -> tujuan.

  3.   F3niX cenahna

    Anjeun nunjukkeun lalaki, anjeun leungit.

  4.   Joaquín cenahna

    Tip Saé!

  5.   LycusHackerEmo cenahna

    Tip anu pikaresepeun ... xD

    Naha anjeun terang saha waé anu ngajantenkeun téks kandel menonjol?
    Maksad abdi, kuring gaduh file txt anu mangrupikeun kamus, ngagaduhan langkung ti 10000 garis sareng kuring hoyong na nyorot téks tangtu sateuacan ":" titik gantung sareng ngalakukeun éta hiji-hiji teuing.

    1.    KZKG ^ Gaara cenahna

      pantun,

      File txt mangrupikeun téks biasa, sapertos namina ... polos, tanpa format atanapi naon anu sami, punten tapi kuring mikir yén anu anjeun naroskeun moal tiasa dilakukeun, leres henteu? 🙁

      Wasalam

      1.    aca cenahna

        saleresna éta tiasa, tapi anjeun kedah terang format tujuanana.
        contona:
        gema $ (gema "Robert: Halo. Ganti di dieu" | sed 's / \ ./. \\ e [40; 31m /; s / \: /: \\ e [40; 35m /')
        éta masalah meunang ku.
        cara séjén pikeun mupus anu tiasa dianggo nyaéta sed '/' $ 1 '/ d' tapi anjeun kedah pastikeun leres-leres na.

        1.    LycusHackerEmo cenahna

          teras bérés simpen dina * .odt

          Naha teu aya cara anu langkung gampang pikeun ngalakukeunana sareng LibreOffice?

  6.   Lolo cenahna

    Naha anjeun tiasa mupus bagian tina garis sareng ngantunkeun sésana?

    Anggap kuring hoyong mupus sadayana di payun kecap dina baris anu tangtu.

    Atanapi hapus sadayana anu nuturkeun kecap éta.

    1.    aca cenahna

      Leres, perkawis narik regex (upami diperyogikeun manusa sed-b, –regexp-ngalegaan)
      Dimimitian tina naon anu kuring mendakan
      kamandang «Robert: Halo. Ganti di dieu »| sed 's / Change //'
      kalayan pola anu ditetepkeun kalayan leres sareng. (hiji karakter) sareng * (langkung ti hiji)
      Saatos:
      kamandang «Robert: Halo. Ganti di dieu »| sed 's / Change. * //'
      Sateuacan:
      kamandang «Robert: Halo. Ganti di dieu »| sed 's /. * Robah //'
      Upami éta perkara kecap na némbongan
      kamandang «Robert: Halo. Ganti di dieu »| sed 's / Change. * / Change /'
      atanapi langkung rumit
      dina garis anu ngandung Robert naon anu badé Robah
      kamandang -e «Fritz: Halo. Ganti di dieu \ nRobert: Halo. Ganti di dieu »| sed '/Robert/s/Cambio.*//'
      atanapi sapertos di awal ngaluarkeun garis kadua sareng ngolah sésana
      kamandang -e «Fritz: Halo. Ganti di dieu \ nRobert: Halo. Ganti di dieu \ nLain »| sed -e 2d -e 's / Change. * //'
      kamandang -e «Fritz: Halo. Ganti di dieu \ nRobert: Halo. Ganti di dieu \ nLain »| sed '2d; s / Change. * //'

      1.    Lolo cenahna

        Hatur nuhun, éta manpaat pisan pikeun kuring.

  7.   msx cenahna

    Tulisan anu saé, salah sahiji anu kuring resep, kumaha hébatna SysAdmin!
    Kumaha kahirupan urang tanpa séd, awek, perl, grep, buntut, sirah, "Emacs" sareng seueur alat penting anu sanés!?

  8.   Lisbeth Olarves cenahna

    Nuhun, éta pisan ngabantosan.

  9.   Perni cenahna

    Halo, sareng kumaha anjeun tiasa ngahapus garis 1,4 sareng 10 dina paréntah anu sami tina file?