- 1. Kaip naudoti SED komandą „Linux“
- 2. Teksto pasirinkimas naudojant komandą SED Linux
- 3. Kaip sukurti pakeitimus naudojant „SED Linux“
- 4. SED pakeitimo parinktys „Linux“
- 5. Įterpkite eilutes ir tekstą naudodami SED „Linux“
- 6. Kaip ištrinti eilutę naudojant „SED Linux“
- 7. Kaip išsaugoti pakeitimus naudojant SED „Linux“
„Linux“ yra komandų kupina sistema, kurioje kiekviena atlieka esminį vaidmenį atliekant tam tikras užduotis, nesvarbu, ar tai būtų vartotojo, objekto ar palaikymo valdymas, kiekviena komanda dalyvauja „Linux“ ir viena iš šių komandų yra „Sed“, apie kurią kalbėsime „Solvetic“ išsamiai.
Kas yra „sed“ komanda „Linux“„Sed“ komanda yra tiesiog srauto redaktorius, kurį galime naudoti norėdami pakeisti teksto darbus su pagrindinėmis funkcijomis įvesties sraute iš failo arba, jei taikoma, įvesties iš dujotiekio.
Skirtingai nuo kitų teksto redaktorių, naudojant „sed“ galima filtruoti srauto tekstą, kai einame per pasirinktą turinį.
Privalumas„Sed“ naudojimo „Linux“ pranašumai yra šie:
- Galime pasirinkti tekstą
- Mes galime pakeisti tekstą
- Pridėkite eilutes prie teksto
- Mes galime pašalinti eilutes iš teksto
- Leidžia keisti arba išsaugoti originalų failą
Bendra sedo sintaksė yra tokia:
sed OPTIONS… [SCRIPT] [INPUT_FILE…]Mes išmoksime keletą būdų, kaip naudoti šią komandą „Linux“.
1. Kaip naudoti SED komandą „Linux“
Pagrindinis sedo naudojimasŠiame pavyzdyje mes naudosime „echo“, kad pamatytume, kaip komanda „sed“ gali pakeisti dalį įvesto teksto, įvedame:
echo solvitic | sed 's / vitic / vetic /'Šiuo atveju sakome sed, kad žodis „vitic“ būtų pakeistas į „vetic“, paspaudus „Enter“ bus toks rezultatas:
DIDELIS
Matome, kad pakeitimas yra automatinis.
2. Teksto pasirinkimas naudojant komandą SED Linux
1 žingsnis
Tokiu atveju turėsime tekstinį failą, kuris yra priglobtas darbalaukyje:
DIDELIS
Dabar mes naudosime šią eilutę:
mažiau Solvetic.txt2 žingsnis
Paspaudus „Enter“, rezultatas bus toks:
DIDELIS
Naudojant „sed“ galima pasirinkti kai kurias failo eilutes, todėl turime nurodyti pradines ir paskutines pasirinkto diapazono eilutes, pavyzdžiui, jei norime išgauti nuo dviejų iki septynių eilučių, vykdome:
sed -n '2,7p' Solvetic.txt3 žingsnis
Pamatysime šiuos dalykus:
DIDELIS
Turime turėti omenyje kablelį priskiriamuose diapazonuose (2,7), parametras p rodo, kad tai reiškia „spausdinti atitinkančias eilutes“, todėl komanda sed spausdins visas to diapazono eilutes ir -n (tylus ) parinktis pasirūpina, kad nebūtų rodomas tas diapazonas neatitinkantis tekstas.
4 žingsnis
Mes galime naudoti parametrą -e (išraiška), kad pasirinktume kelis kartus, pavyzdžiui:
sed -n -e '1,2p' -e '5,6p' Solvetic.txt
DIDELIS
5 žingsnis
Naudojant „sed“ galima pasirinkti pradinę eilutę, tada nurodome, kurią failą reikia pereiti, ir atspausdinti alternatyvias eilutes, pavyzdžiui, įvedame:
sed -n '1 ~ 3p' Solvetic.txtŠiuo atveju pirmasis skaičius nurodo pradžios liniją, o antrasis - nurodo, kurios eilutės po pradžios linijos bus rodomos:
DIDELIS
6 žingsnis
Kitas sed naudojimas yra galimybė pasirinkti eilutes, kuriose yra atitinkami teksto šablonai. Jei nežinome, iš kur kilęs eilutės numeris, galime atlikti šiuos veiksmus:
sed -n ' / Vykdyti / p' Solvetic.txt
DIDELIS
Pamatysime eilutes, kurios prasideda šiuo terminu.
3. Kaip sukurti pakeitimus naudojant „SED Linux“
1 žingsnis
Pagrindinėje dalyje pamatėme, kaip pakeisti tekstą naudojant sed, ten naudojome parametrą -s (substitution). Tada pirmoji eilutė nurodo paieškos modelį, o antroji - tekstą, kuriuo ji bus pakeista.
sed -n 's / užduotys / veiksmai / p' Solvetic.txtŠiame pavyzdyje „užduotis“ pakeičiame „veiksmais“:
DIDELIS
2 žingsnis
Naudojant parametrą p sed jis automatiškai sustoja po pirmosios rungtynės, norėdami atlikti visuotinę paiešką ir apskritai atlikti pakeitimą, turime pridėti „g“:
sed -n 's / tasks / action / gp' Solvetic.txtJei norime, kad nebūtų skiriamos didžiosios ir mažosios raidės, pridėsime „i“:
sed -n 's / tasks / action / gpi' Solvetic.txt3 žingsnis
Pakeitimų apribojimus galima nustatyti tik tam tikrose failo dalyse, pirmiausia išvardijame analizuojamas eilutes:
sed -n '1,3p' Solvetic.txt
DIDELIS
4 žingsnis
Pažiūrėkime toliau, mes galime rasti, kur yra dvi erdvės, ir pakeisti jas viena:
sed -n '1,3 s / * / / gp' Solvetic.txtŽvaigždutė (*) reiškia nulį ar daugiau anksčiau pasirinkto simbolio.
5 žingsnis
Galite sumažinti paieškos modelį iki vienos vietos naudodami šią komandą:
sed -n '1,3 s / * / / gp' Solvetic.txtMes matome rezultatų skirtumą:
DIDELIS
Pastaruoju atveju žvaigždutė atitinka nulį ar daugiau ankstesnio simbolio, todėl taikant komandą kiekvienas ne tarpo simbolis atrodo kaip „nulinis tarpas“.
6 žingsnis
Norėdami atlikti du ar daugiau pakeitimų vienu metu, vykdome:
sed -n -e 's / executed / taikomas / gip' -e 's / užduotys / veiksmai / gip' Solvetic.txt
DIDELIS
4. SED pakeitimo parinktys „Linux“
Taip pat galime naudoti „sed“ failų pavadinimams iš sistemos išgauti, šiuo atveju turime turėti omenyje, kad kiekvienas objektas turi atitikti paieškos modelį (subraiškas), kuris gali būti sunumeruotas (ne daugiau kaip devyni elementai).
1 žingsnis
Tada šie skaičiai gali būti naudojami nurodant konkrečias posakius.
Papildoma išraiška turi būti uždėta skliausteliuose [()], o prieš skliaustelius turi būti pasvirosios brūkšnys (\), kad jie nebūtų aptikti kaip įprastas simbolis, pavyzdžiui:
sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd
DIDELIS
Šioje komandoje naudojami kintamieji yra
- sed 's /: nurodo komandą sed ir pakeitimo išraiškos pradžią.
- \ (: pridėkite antraeilę frazę, prieš kurią yra pasvirasis brūkšnys
- [^:] *: yra pirmasis paieškos termino posakis, kuriame yra grupė tarp skliaustų, o kareivio ženklas (^) reiškia „ne“, kai naudojamas grupėje, tai yra bet koks simbolis, kuris nėra dvitaškis
- \): Uždaromas skliaustas [)] su pasviruoju brūkšniu
- . *: yra antrasis paieškos posakis, nurodantis „bet kokį simbolį ir bet kokį jų skaičių“.
- / \ 1: yra išraiškos pakeitimo dalis, kurioje yra skaičius 1, prieš kurį yra pasvirasis brūkšnys (\) ir nurodo, kad tekstas atitinka pirmąją posakį
- / ': nutraukia komandą sed
2 žingsnis
Su ankstesne komanda mes ieškojome bet kokios simbolių eilutės, kurioje nėra dvitaškio, nes kiekviena failo / etc / passwd eilutė prasideda vartotojo vardu, kuris baigiasi dvitaškiu. Šią vertę, išskiriančią vartotojo vardą, galime pakeisti šia komanda:
sed 's / \ [[^:] * \) \ (. * \) / \ 2 /' / etc / passwd
DIDELIS
3 žingsnis
Mes galime rodyti tik vartotojų vardus naudodami šią komandą:
sedas /:.*// "/ etc/ passwdKitas „sed“ variantas yra naudoti parametrą c (cut - cut), kad pakeistumėte failo tekstą, pavyzdžiui:
sed ' / Linux / c Linux operacinė sistema' Solvetic.txt
DIDELIS
5. Įterpkite eilutes ir tekstą naudodami SED „Linux“
1 žingsnis
Kitas uždavinys, kurį reikia naudoti su sed, yra įterpti naujas eilutes ir tekstą į failą, šiuo atveju turime šiuos duomenis:
DIDELIS
2 žingsnis
Galime įterpti naują eilutę, nurodydami, po kuria ji bus įterpta:
sed ' / Ub / a -> Įterptas!' Solvetic.txt
DIDELIS
3 žingsnis
Taip pat galima naudoti komandą Įterpti (i), norint įterpti naują eilutę virš atitikties:
sed ' / Wi / i -> Įterptas!' Solvetic.txt
DIDELIS
4 žingsnis
Norėdami pridėti naują tekstą prie atitinkančios failo eilutės, galime naudoti simbolį „&“ ir:
sed 's /.*/--> Įterptas & /' Solvetic.txt
DIDELIS
6. Kaip ištrinti eilutę naudojant „SED Linux“
Šiuo atveju turime naudoti parametrą d (ištrinti), kad ištrintume, pavyzdžiui, antrąją eilutę, kurią vykdome:
sed '2d' Solvetic.txt
DIDELIS
Jei reikia, galime pašalinti diapazoną:
sed '1,4d' Solvetic.txtNorėdami pašalinti linijas už diapazono ribų, turime naudoti šauktuką (!):
sed '2,4! d' Solvetic.txt
7. Kaip išsaugoti pakeitimus naudojant SED „Linux“
1 žingsnis
Norėdami pritaikyti atliktus pakeitimus, galite naudoti parinktį vietoje (-i), kad sedas galėtų įrašyti pakeitimus į pradinį failą, tačiau dėl didesnio saugumo galime pridėti atsarginį plėtinį, kaip nurodyta toliau (sukūrėme atsarginę kopiją) eilutės, kuriose yra žodis Wi):
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txtMes išvardijame turinį:
katė Solvetic.txt.bak
DIDELIS
2 žingsnis
Galima nukreipti išvestį į naują failą su tais pačiais rezultatais:
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt
DIDELIS
Naudodami „sed“ galime visiškai visiškai dirbti su failais „Linux“, nes matėme kiekvieną jo naudojimo parinktį.