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
16 Kommentaren, loosst ären
Ganz gudde Bäitrag 😉
Merci
Iwwregens hu mir Är E-Mail kritt elo äntweren ech Iech 😀
Wat
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?
scp
scp Benotzer @ machine_address: Wee Benotzer @ machine_address: Wee.
Selwecht Syntax wéi cp, Quell -> Destinatioun.
Dir hutt de Mann gewisen, Dir sidd verluer.
Gudden Tipp!
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.
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
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.
da späichert et fäerdeg an * .odt
Ass et net e méi einfache Wee fir et mat LibreOffice ze maachen?
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.
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. * //'
Merci, et ass ganz nëtzlech fir mech.
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!?
Merci, et war ganz hëllefräich.
Moien, a wéi kéint Dir d'Linnen 1,4 an 10 aus enger Datei am selwechte Kommando läschen?