Dažos gadījumos mums ir jāizdzēš konkrēta rinda no faila vai vairāki, piemēram, man ir gadījies, ka man ir bijis vesels failu saraksts, un man ir jāizdzēš 27. rinda no visiem šiem (27. rindiņa ir tāda, ka (ACL, norma, noteikums, konfigurācija), es varu vai nu rediģēt failu pēc faila, vai arī varu vienkārši sasniegt nepieciešamo, izmantojot komandu slāpes un bash skripts (pēc izvēles).
Mēģināsim nedaudz vienkāršu failu.
Mums ir fails distros-deb.txt kas satur šo:
Debian
kubuntu
Archlinux
solus
piparmētra
Citiem vārdiem sakot, fails distros-deb.txt ir tas, kurā mēs ievietosim Debian balstītas distros, bet tur mēs redzam, ka 3. rindā ir "archlinux", distro, kam acīmredzami nav nekāda sakara ar Debian, tāpēc mums šī līnija ir jānovērš. Lai novērstu šī faila 3. rindiņu, mēs ievietosim:
sed "3d" distros-deb.txt > distros-deb-ok.txt
Izskaidrot šo rindu ir nedaudz viegli, izmantojot slāpes "3d" mēs norādām, ka izdzēsīsim 3. rindiņu ar distros-deb.txt Mēs norādām, pie kura faila strādāt, tas ir, izdzēsiet šī faila 3. rindiņu, līdz šeit, ja mēs nospiedīsim Enter, tas mums parādīs, ko mēs vēlamies, bet terminālā, tāpēc ar > distros-deb-ok.txt mēs norādām, ka tā vietā, lai parādītu rezultātu terminālā, to ievieto failā ar šo nosaukumu.
Kas ir vienkāršs?
Tāpat mēs varam izvairīties no > distros-deb-ok.txt izmantojot pareizu parametru slāpes, parametrs -i
Tas ir, ja mēs vēlamies izdzēst līniju no faila un saglabāt to ar tādu pašu nosaukumu (nevis citā failā), vienkārši pievienojiet parametru -i :
sed -i "3d" distros-deb.txt
Tas noņems 3. līniju no distros-deb.txt un saglabās to.
Ko darīt, ja es vēlos virkni līniju, tas ir, noņemt 3. līniju, bet arī 4. un 5. līniju? Lai to panāktu, mēs ievietojam diapazonu no 3 līdz 5, tas ir:
sed -i "3,5d" distros-deb.txt
Un tas man parādīs tikai debian un kubuntu
Ko darīt, ja es vēlos izdzēst no 2. rindas uz pēdējo, kad nezinu kopējo rindu skaitu?
Vienkārši izmantojiet dolāra simbolu - »$
sed -i "2,$d" distros-deb.txt
Gadījumā, ja vēlaties izslēgt no pirmās rindas uz # 4, tad sākumā vienkārši ievietojam vērtību 1:
sed -i "1,4d" distros-deb.txt
Tas ir bijis viss, ļoti noderīgs padoms, kad vēlaties izveidot bash skriptus, lai automatizētu uzdevumus, un jums ir jāpārveido un jānoņem konfigurācijas failu rindas, lai modificētu, ko mēs varam izmantot slāpes o Perl, kā arī likvidēt jau zinām kā to izdarīt ar sed
Sveicieni