Wéi läschen Dir spezifesch Zeilen aus enger Datei mat Sed

Bei gewësse Geleeënheete musse mir eng spezifesch Zeil aus enger Datei oder e puer läschen, zum Beispill, et ass mat mir geschitt datt ech eng ganz Lëscht vun Dateien hunn an ech muss d'Linn # 27 vun all dësen läschen (Linn # 27 ass déi vun engem ACL , Norm, Regel, Konfiguratioun), entweder kann ech Datei no Datei änneren oder ech kann just erreechen wat ech mam Kommando brauch zb an e Bash Skript (optional).

Awer, loosst eis eng eenzeg Datei e bësse einfach probéieren.

Mir hunn d'Datei distros-deb.txt déi enthält:

debian

ubuntu

archlinux

Solussen

Mënzprägung

An anere Wierder, d'Datei distros-deb.txt ass an deem mir d'Debian-baséiert Distros setzen, awer do gesi mir datt an der Linn # 3 "archlinux" ass, en Distro deen natierlech näischt mat Debian ze dinn huet, also musse mir dës Linn eliminéieren. Fir d'Linn # 3 vun där Datei z'eliminéieren wäerte mir déi folgend setzen:

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

Dës Linn z'erklären ass e bësse einfach, mat duuschtereg "3d" mir weisen datt mir d'Linn # 3 läschen, mat distros-deb.txt Mir weisen un wéi eng Datei mir schaffen, dat heescht d'Linn # 3 vun dëser Datei läschen, bis hei wa mir op Enter drécken da weist eis wat mir wëllen awer am Terminal, also mat > distros-deb-ok.txt mir weisen datt anstatt d'Resultat am Terminal ze weisen, et an eng Datei mat dësem Numm ze setzen.

Wat ass einfach?

Och kënne mir vermeiden mat der > distros-deb-ok.txt mat engem richtege Parameter vun zb, de Parameter -i

Dat ass, wa mir d'Linn aus der Datei läschen a späichere mam selwechten Numm (an net an enger anerer Datei), füügt einfach de Parameter bäi -i :

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

Dëst wäert d'Linn # 3 aus distros-deb.txt erofhuelen a späicheren.

Wat wann ech eng Rei vu Linnen wëll, dat ass d'Linn # 3 awer och # 4 an # 5 ewechzehuelen? Fir dëst z'erreechen hu mir de Beräich vun 3 op 5 gesat, dat ass:

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

An et wäert mir nëmmen Debian a Kubuntu weisen 😀

Also wat wann ech vun der Linn 2 op déi lescht läsche wëll, wann ech d'Gesamtlinnen net kennen?

Benotzt just d'Dollarsymbol - »$

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

Am Fall wou Dir vun der éischter Zeil op # 4 eliminéiere wëllt, setze mir de Wäert 1 am Ufank einfach:

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

Dëst war alles, e ganz nëtzlechen Tipp wann Dir Bash Scripte maache wëllt fir Aufgaben ze automatiséieren an Dir musst Zeilen a Konfiguratiounsdateien änneren an eliminéieren, fir z'änneren kënne mir benotzen zb o Perl, wéi och fir ze eliminéieren wësse mer scho wéi et mat sed ze maachen do

Wat


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

16 Kommentaren, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   mss-devel sot

    Ganz gudde Bäitrag 😉

    1.    KZKG ^ Gaara sot

      Merci

      Iwwregens hu mir Är E-Mail kritt elo äntweren ech Iech 😀

      Wat

  2.   ouni Numm sot

    Als Hohepriister vum Terminal, Serveren an ssh Verbindungen kommen ech bei Iech, oh super KZKG ^ Gaara, an ech froen Iech: Wou kann ech en Tutorial kréien um Niveau vu menger Ignoranz, déi et mir erlaabt ssh Verbindungen tëscht zwou Fernmaschinnen a verschiddene Netzwierker ze benotzen fir ze deelen Textdateien, pdf, Bild an Toun (mp3)….

    🙂

    Eeschtlech, kéint Dir mech an dëser Hisiicht guidéieren, ech hunn zwou Maschinnen, eng op der Aarbecht an eng doheem an ech brauch eng ssh Verbindung tëscht hinnen (well wéi ech et verstinn, erlaabt ssh Inhalt tëscht Maschinnen ze deelen, sinn ech falsch?).
    A wann ech falsch sinn, wéi eng Uwendung empfeelt Dir?
    A wou fannen ech e Basis Tutorial an dëser Hisiicht?

    1.    -spyker- sot

      scp

      scp Benotzer @ machine_address: Wee Benotzer @ machine_address: Wee.

      Selwecht Syntax wéi cp, Quell -> Destinatioun.

  3.   f3nx sot

    Dir hutt de Mann gewisen, Dir sidd verluer.

  4.   Joaquin sot

    Gudden Tipp!

  5.   LycusHackerEmo sot

    Interessanten Tipp ... xD

    duerch Zoufall wësst Dir keen deen fett Text opfält?
    Ech mengen, ech hunn eng txt Datei déi e Wierderbuch ass, et huet méi wéi 10000 Zeilen an ech wëll datt et gewëssen Text virun der ":" Suspensiounspunkt weist an et eent fir eent ze maachen ass zevill.

    1.    KZKG ^ Gaara sot

      Hallo,

      Eng Txt Datei ass Kloertext, wéi den Numm et scho seet ... einfach, ouni Formater oder ähnleches, et deet mir Leed awer ech mengen datt dat wat Dir frot net ka gemaach ginn? 🙁

      Wat

      1.    aca sot

        tatsächlech kann et, awer Dir musst d'Destinatiounsformat wëssen.
        zB:
        echo $ (echo "Robert: Moien. Ändert hei" | sed 's / \ ./. \\ e [40; 31m /; s / \: /: \\ e [40; 35m /')
        et ass eng Saach vum Ëmgang.
        deen anere Wee fir ze läschen dee ka benotzt ginn ass sed '/' $ 1 '/ d' awer Dir musst sécher sinn vun der Re.

        1.    LycusHackerEmo sot

          da späichert et fäerdeg an * .odt

          Ass et net e méi einfache Wee fir et mat LibreOffice ze maachen?

  6.   Lolo sot

    Kënnt Dir en Deel vun enger Zeil läschen an de Rescht verloossen?

    Loosst eis soen datt ech alles virun engem Wuert an enger bestëmmter Zeil läsche wëll.

    Oder läscht alles wat deem Wuert nokënnt.

    1.    aca sot

      Jo, et ass eng Saach e Regex ze zéien (wann néideg Mann sed -r, –regexp-verlängert)
      Ugefaange mat deem wat ech fannen
      Echo «Robert: Moien. Änneren hei »| sed 's / Änneren //'
      mat engem gutt definéierten Muster a mat. (ee Charakter) an * (méi wéi ee)
      Nodeems:
      Echo «Robert: Moien. Änneren hei »| sed 's / Änneren. * //'
      Virun:
      Echo «Robert: Moien. Änneren hei »| sed 's /. * Änder //'
      Wann et wichteg ass datt d'Wuert erscheint
      Echo «Robert: Moien. Änneren hei »| sed 's / Änneren. * / Änneren /'
      oder méi ausféierlech
      an der Linn mam Robert wat nom Change geet
      echo -e «Fritz: Moien. Ännerung hei \ nRobert: Moien. Änneren hei »| sed '/Robert/s/Cambio.*//'
      oder wéi am Ufank déi zweet Zeil eraushuelen an de Rescht verschaffen
      echo -e «Fritz: Moien. Ännerung hei \ nRobert: Moien. Änneren hei \ nAner »| sed -e 2d -e 's / Ännerung. * //'
      echo -e «Fritz: Moien. Ännerung hei \ nRobert: Moien. Änneren hei \ nAner »| sed '2d; s / Ännerung. * //'

      1.    Lolo sot

        Merci, et ass ganz nëtzlech fir mech.

  7.   msx sot

    Flotten Artikel, vun deem ech gär hunn, wéi super de SysAdmin!
    Wat wier eist Liewen ouni sed, awek, perl, grep, Schwanz, Kapp, "Emacs" an esou vill aner wesentlech Tools!?

  8.   Lisbeth Ollarves sot

    Merci, et war ganz hëllefräich.

  9.   Perni sot

    Moien, a wéi kéint Dir d'Linnen 1,4 an 10 aus enger Datei am selwechte Kommando läschen?