Kaip iš failo ištrinti konkrečias eilutes naudojant sed

Tam tikrais atvejais turime ištrinti tam tikrą failo ar kelių eilučių, pavyzdžiui, man nutiko, kad turėjau visą failų sąrašą ir turiu ištrinti visų 27 eilutes (27 eilutė yra ACL eilutė) , norma, taisyklė, konfigūracija), arba aš galiu redaguoti failą pagal failą, arba tiesiog pasiekiu tai, ko man reikia, naudodamas komandą troškulys ir bash scenarijų (nebūtina).

Pabandykime šiek tiek paprastą failą.

Mes turime bylą distros-deb.txt kuriame yra tai:

Debian

ubuntu

Archlinux

solus

mėta

Tai yra byla distros-deb.txt yra tas, kuriame mes įdėsime „Debian“ pagrindu veikiančius distros, bet ten matome, kad 3 eilutėje yra „archlinux“, platintojas, kuris, aišku, neturi nieko bendro su „Debian“, todėl turime pašalinti šią eilutę. Norėdami pašalinti šio failo 3 eilutę, įdėsime:

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

Paaiškinti šią eilutę yra šiek tiek lengva, su troškulys „3d“ nurodome, kad ištrinsime 3 eilutę su distros-deb.txt Nurodome, kurį failą reikia dirbti, tai yra, ištrinkite šio failo 3 eilutę, iki čia, jei paspausime Enter, ji parodys mums, ko norime, bet ne terminale, taigi su > distros-deb-ok.txt mes nurodome, kad užuot rodęs rezultatą terminale, jis įdėjo jį į failą tokiu pavadinimu.

Kas yra paprasta?

Taip pat galime išvengti > distros-deb-ok.txt naudojant tinkamą parametrą troškulysparametras -i

Tai yra, jei norime pašalinti eilutę iš failo ir išsaugoti ją tuo pačiu pavadinimu (o ne kitame faile), tiesiog pridėkite parametrą -i :

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

Tai pašalins 3 eilutę iš distros-deb.txt ir išsaugos.

Ką daryti, jei noriu eilutės diapazono, t. Y. Pašalinti linijas Nr. 3, taip pat Nr. 4 ir Nr. 5? Norėdami tai pasiekti, mes nustatėme diapazoną nuo 3 iki 5, tai yra:

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

Ir man parodys tik debian ir kubuntu 

Ką daryti, jei noriu ištrinti iš 2 eilutės į paskutinę, kai nežinau visų eilučių?

Tiesiog naudokite dolerio simbolį - »$

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

Jei norite pašalinti iš pirmos eilutės į # 4, tada pradžioje tiesiog įrašome vertę 1:

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

Tai buvo viskas, labai naudingas patarimas, kai norite sukurti „bash“ scenarijus, kad automatizuotumėte užduotis, ir jums reikia modifikuoti ir pašalinti konfigūracijos failų eilutes, kad galėtume modifikuoti troškulys o perl, taip pat pašalinti jau žinome, kaip tai padaryti su sed 

saludos


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje