▷ Kā lietot SED komandu Linux - PIEMĒRI

Linux ir sistēma, kurā ir daudz komandu, un katrai no tām ir būtiska loma noteiktu uzdevumu izpildē, neatkarīgi no tā, vai tie ir lietotāju, objektu vai atbalsta pārvaldība, katrai komandai ir līdzdalība Linux, un viena no šīm komandām ir Sed, par kuru mēs runāsim vietnē Solvetic sīkāk.

Kāda ir sed komanda LinuxKomanda sed burtiski ir plūsmas redaktors, ko mēs varam izmantot, lai pārveidotu teksta darbus ar pamatfunkcijām ievades plūsmā vai nu no faila, vai, ja nepieciešams, no cauruļvada.

Atšķirībā no citiem teksta redaktoriem, izmantojot sed, ir iespējams filtrēt tekstu cauruļvadā, kad mēs ejam pār atlasīto saturu.

PriekšrocībaPriekšrocības, lietojot sed Linux, ir šādas:

  • Mēs varam izvēlēties tekstu
  • Mēs varam aizstāt tekstu
  • Pievienojiet tekstam rindas
  • Mēs varam noņemt rindas no teksta
  • Ļauj modificēt vai saglabāt oriģinālo failu

Vispārējā sintakse sed lietošanā ir šāda:

 sed OPTIONS… [SCRIPT] [INPUT_FILE…]
Mēs uzzināsim dažus veidus, kā izmantot šo komandu Linux.

1. Kā izmantot SED komandu Linux

Pamata lietošana sedŠajā piemērā mēs izmantosim "echo", lai redzētu, kā komanda sed var aizstāt daļu no ievadītā teksta, mēs ievadām:

 echo solvitic | sed 's / vitic / vetic /'
Šajā gadījumā mēs sakām sedam aizstāt vārdu “vitic” ar “vetic”, nospiežot Enter, būs šāds rezultāts:

PALIELINĀT

Mēs redzam, ka izmaiņas notiek automātiski.

2. Teksta izvēle ar komandu SED Linux

1. darbība
Šajā gadījumā mums būs teksta fails, kas tiek mitināts darbvirsmā:

PALIELINĀT

Tagad mēs izmantosim šādu rindu:

 mazāk Solvetic.txt
2. solis
Nospiežot taustiņu Enter, būs šāds rezultāts:

PALIELINĀT

Izmantojot sed, ir iespējams atlasīt dažas faila rindas, tāpēc mums jānorāda atlasāmā diapazona sākuma un beigu rindas, piemēram, ja mēs vēlamies izvilkt divas līdz septiņas rindas, mēs izpildām:

 sed -n '2,7p' Solvetic.txt
3. solis
Mēs redzēsim sekojošo:

PALIELINĀT

Mums jāpatur prātā komats piešķirtajos diapazonos (2,7), parametrs p norāda, ka tas nozīmē "drukāt atbilstošas ​​līnijas", ar šo komandu sed izdrukās visas šī diapazona līnijas un -n (kluss ) opcija rūpējas, lai netiktu parādīts teksts, kas neatbilst šim diapazonam.

4. solis
Mēs varam izmantot parametru -e (izteiksme), lai veiktu vairākas izvēles, piemēram:

 sed -n -e '1,2p' -e '5,6p' Solvetic.txt

PALIELINĀT

5. solis
Izmantojot sed, ir iespējams izvēlēties sākuma līniju, tad mēs norādām, kas jāpārvieto failā, un, lai izdrukātu alternatīvās rindas, piemēram, mēs ievadām:

 sed -n '1 ~ 3p' Solvetic.txt
Šajā gadījumā pirmais skaitlis attiecas uz starta līniju, bet otrais numurs norāda, kuras līnijas pēc starta līnijas tiks parādītas:

PALIELINĀT

6. darbība
Vēl viens sed lietojums ir iespēja atlasīt rindas, kurās ir atbilstošie teksta modeļi; ja mēs nezinām, no kurienes nāk rindas numurs, mēs varam izpildīt sekojošo:

 sed -n ' / Run / p' Solvetic.txt

PALIELINĀT

Mēs redzēsim rindas, kas sākas ar šo terminu.

3. Kā izveidot aizstājējus ar SED Linux

1. darbība
Pamata daļā mēs redzējām, kā aizstāt tekstu, izmantojot sed, tur mēs izmantojām parametru -s (aizstāšana). Tad pirmā virkne norāda meklēšanas modeli, bet otrā - tekstu, ar kuru tā tiks aizstāta.

 sed -n ' / uzdevumi / darbības / p' Solvetic.txt 
Šajā piemērā mēs "uzdevumus" aizstājam ar "darbībām":

PALIELINĀT

2. solis
Izmantojot parametru p sed, tas automātiski apstājas pēc pirmās spēles, lai veiktu globālu meklēšanu un veiktu izmaiņas kopumā, mums jāpievieno "g":

 sed -n 's / uzdevumi / darbības / gp' Solvetic.txt
Ja vēlamies, lai reģistrā nebūtu reģistrjutības, mēs pievienosim “i”:
 sed -n 's / uzdevumi / darbības / gpi' Solvetic.txt
3. solis
Ierobežojumus aizstāšanai var izveidot tikai noteiktām faila sadaļām, vispirms mēs uzskaitām analizējamās rindas:
 sed -n '1,3p' Solvetic.txt

PALIELINĀT

4. solis
Apskatīsim sekojošo, mēs varam atrast, kur ir divas atstarpes, un aizstāt tās ar vienu:

 sed -n '1,3 s / * / / gp' Solvetic.txt
Zvaigznīte (*) apzīmē nulli vai vairāk iepriekš atlasītās rakstzīmes.

5. solis
Meklēšanas modeli var samazināt līdz vienai vietai, izmantojot šādu komandu:

 sed -n '1,3 s / * / / gp' Solvetic.txt
Mēs redzam atšķirību rezultātos:

PALIELINĀT

Pēdējā gadījumā zvaigznīte atbilst nullei vai vairāk no iepriekšējās rakstzīmes, tādējādi katra rakstzīme, kas nav atstarpe, izskatās kā "nulles atstarpe", piemērojot komandu.

6. darbība
Lai vienlaikus veiktu divas vai vairākas nomaiņas, mēs veicam:

 sed -n -e ' / izpildīts / lietots / gip' -e 's / uzdevumi / darbības / gip' Solvetic.txt

PALIELINĀT

4. SED nomaiņas iespējas operētājsistēmā Linux


Mēs varam izmantot arī sed, lai izvilktu no sistēmas failu nosaukumus, šajā gadījumā mums jāpatur prātā, ka katram objektam jāatbilst meklēšanas modelim (apakšizteiksmēm), ko var numurēt (līdz pat deviņiem elementiem).

1. darbība
Pēc tam šos skaitļus var izmantot, lai atsauktos uz noteiktām apakšizteiksmēm.
Apakšizteiksmei jābūt iekļautai iekavās [()], un pirms iekavām jābūt slīpsvītrai (\), lai tās netiktu atklātas kā parasta rakstzīme, piemēram:

 sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd

PALIELINĀT

Šajā komandā izmantotie mainīgie ir

  • sed 's /: norāda sed komandu un aizstāšanas izteiksmes sākumu.
  • \ (: pievienojiet apakšizteiksmi, pirms kuras ir slīpsvītra
  • [^:] *: ir meklēšanas vienuma pirmā apakšizteiksme, kurā ir grupa starp iekavām, apzīmējums (^) nozīmē “nē”, ja to lieto grupā, tas ir, jebkura rakstzīme, kas nav kols
  • \): Beigu iekava [)] ar slīpsvītru
  • . *: ir otrā meklēšanas apakšizteiksme, kas norāda "jebkuru rakstzīmi un jebkuru to skaitu".
  • / \ 1: ir izteiksmes aizvietojošā daļa, kas satur skaitli 1, pirms kura ir slīpsvītra (\) un norāda, ka teksts atbilst pirmajai apakšizteiksmei
  • / ': pārtrauc komandu sed

2. solis
Ar iepriekšējo komandu mēs meklējām jebkuru rakstzīmju virkni, kurā nav kolu, jo katra / etc / passwd faila rinda sākas ar lietotājvārdu, kas beidzas ar kolu. Mēs varam aizstāt šo vērtību, izolējot lietotājvārdu, ar šādu komandu:

 sed 's / \ [[^:] * \) \ (. * \) / \ 2 /' / etc / passwd

PALIELINĀT

3. solis
Mēs varam parādīt tikai lietotāju vārdus ar šādu komandu:

 sed 's /:.*// "/ etc/ passwd
Vēl viena iespēja ar sed ir izmantot parametru c (cut - cut), lai aizstātu tekstu failā, piemēram:
 sed ' / Linux / c Linux operētājsistēma' Solvetic.txt

PALIELINĀT

5. Ievietojiet rindas un tekstu ar SED operētājsistēmā Linux

1. darbība
Vēl viens uzdevums, ko izmantot kopā ar sed, ir jaunu rindu un teksta ievietošana failā, šajā gadījumā mums ir šādi dati:

PALIELINĀT

2. solis
Mēs varam ievietot jaunu rindu, norādot zem kuras tā tiks ievietota:

 sed ' / Ub / a -> Ievietots!' Solvetic.txt

PALIELINĀT

3. solis
Ir iespējams arī izmantot komandu Ievietot (i), lai ievietotu jaunu rindiņu virs atbilstības:

 sed ' / Wi / i -> Ievietots!' Solvetic.txt

PALIELINĀT

4. solis
Mēs varam izmantot zīmi "&", lai pievienotu jaunu tekstu atbilstošai faila rindai, un mēs izpildām:

 sed 's /.*/--> Ievietots & /' Solvetic.txt

PALIELINĀT

6. Kā izdzēst rindu ar SED Linux


Šajā gadījumā mums jāizmanto parametrs d (dzēst), lai dzēstu, piemēram, otro izpildāmo rindu:
 sed '2d' Solvetic.txt

PALIELINĀT

Vajadzības gadījumā mēs varam noņemt diapazonu:

 sed '1,4d' Solvetic.txt
Lai noņemtu līnijas ārpus diapazona, mums ir jāizmanto izsaukuma zīme (!):
 sed '2,4! d' Solvetic.txt

7. Kā saglabāt izmaiņas, izmantojot SED operētājsistēmā Linux

1. darbība
Lai piemērotu veiktās izmaiņas, ir iespējams izmantot opciju In-place (-i), lai sed varētu ierakstīt izmaiņas sākotnējā failā, bet, lai nodrošinātu lielāku drošību, mēs varam pievienot rezerves paplašinājumu šādi (esam dublējuši rindas, kurās ir vārds Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Mēs uzskaitām saturu:
 kaķis Solvetic.txt.bak

PALIELINĀT

2. solis
Ir iespējams novirzīt izvadi uz jaunu failu ar tādiem pašiem rezultātiem:

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt

PALIELINĀT

Ar sed mēs varam pilnībā strādāt ar failiem operētājsistēmā Linux, jo esam redzējuši katru tā lietošanas iespēju.

wave wave wave wave wave