Konkreetsete ridade kustutamine failist sed abil

Teatud juhtudel peame kustutama failist konkreetse rea või mitu, näiteks on minuga juhtunud, et mul on olnud terve failide loend ja ma pean kustutama nende kõigi rida nr 27 (rida nr 27 on ACL-i rida) , norm, reegel, konfiguratsioon), kas ma saan faili failide kaupa redigeerida või saan käsuga lihtsalt saavutada vajaliku janu ja bashi skript (valikuline).

Kuid proovime ühte faili mõnevõrra lihtsana.

Toimik on meil olemas distros-deb.txt mis sisaldab seda:

debian

ubuntu

Archlinux

soolad

piparmünt

Teisisõnu fail distros-deb.txt on see, kuhu me paneme Debiani-põhised distrod, kuid seal näeme, et real # 3 on "archlinux", distro, millel pole ilmselgelt midagi pistmist Debianiga, seega peame selle rea kõrvaldama. Selle faili rea nr 3 kõrvaldamiseks paneme järgmise:

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

Selle joone selgitamine on mõnevõrra lihtne, kasutades janu "3d" me näitame, et kustutame rea nr 3 koos distros-deb.txt Me näitame, millise failiga töötada, st kustutage selle faili rida nr 3, siia vajutades sisestusklahvi , näitab see, mida me tahame, kuid terminalis, nii et > distros-deb-ok.txt me näitame, et selle asemel, et tulemust terminalis näidata, pani ta selle sellenimelisse faili.

Mis on lihtne?

Samuti võime vältida > distros-deb-ok.txt õige parameetri abil janu, parameeter -i

See tähendab, et kui me tahame failist rea eemaldada ja selle sama nimega (ja mitte mõnesse muusse faili) salvestada, lisage lihtsalt parameeter -i :

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

See eemaldab distros-deb.txt-st rea nr 3 ja salvestab selle.

Mis siis, kui ma tahan ridade vahemikku, see tähendab joonte nr 3, aga ka # 4 ja # 5 eemaldamist? Selle saavutamiseks paneme vahemiku 3 kuni 5, see tähendab:

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

Ja see näitab mulle ainult debiani ja kubuntu 

Mis siis saab, kui ma tahan kustutada 2. realt viimasele, kui ma ei tea ridade koguarvu?

Kasutage lihtsalt dollari sümbolit - »$

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

Kui soovite kõrvaldada esimeselt realt numbrile 4, paneme lihtsalt väärtuse 1 alguses:

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

See on olnud kõik, väga kasulik näpunäide, kui soovite teha bash-skripte ülesannete automatiseerimiseks ja peate muutma ja kõrvaldama konfiguratsioonifailide ridu, et saaksime kasutada janu o perl, samuti kõrvaldamiseks teame juba, kuidas seda sed  abil teha

seoses


Lisa eelistatud allikana Google'is