50 `bet` komandu piemēri

50 Sed Command Examples



`sed` ir noderīga GNU/Linux teksta apstrādes funkcija. Pilna 'sed' forma ir straumes redaktors. Daudzus vienkāršus un sarežģītus teksta apstrādes uzdevumus var paveikt ļoti vienkārši, izmantojot komandu `sed`. Jebkuru teksta vai faila virkni var meklēt, aizstāt un izdzēst, izmantojot regulāro izteiksmi ar komandu `sed. Bet šīs komandas īslaicīgi veic visu veidu izmaiņas, un sākotnējais faila saturs pēc noklusējuma netiek mainīts. Ja nepieciešams, lietotājs var saglabāt modificēto saturu citā failā. Komandas 'sed' pamata lietojumi ir izskaidroti šajā apmācībā, izmantojot 50 unikālus piemērus. Pirms šīs apmācības uzsākšanas jums jāpārbauda operētājsistēmā instalētā 'sed' versija, izpildot šādu komandu. Apmācība ir veidota, pamatojoties uz GNU sed. Tātad šī 'sed' versija būs nepieciešama, lai praktizētu šajā apmācībā parādītos piemērus.

$sed --versija

Sekojošā izvade parāda, ka GNU Sed versija 4.4 ir instalēta sistēmā.









Sintakse:



sed [iespējas]...[skripts] [failu]

Ja ar komandu `sed` netiek nodrošināts neviens faila nosaukums, tad skripts darbosies ar standarta ievades datiem. Skriptu 'sed' var izpildīt bez jebkādām opcijām.





Saturs :

  1. Pamata teksta aizstāšana, izmantojot “sed”
  2. Aizstājiet visus teksta gadījumus noteiktā faila rindā, izmantojot opciju “g”
  3. Katrā rindiņā aizstājiet tikai sakritības otro gadījumu
  4. Katrā rindā aizstājiet tikai sakritības pēdējo gadījumu
  5. Faila pirmo atbilstību aizstājiet ar jaunu tekstu
  6. Aizstājiet pēdējo atbilstību failā ar jaunu tekstu
  7. Aizbīdes slīpsvītra aizstāšanas komandās, lai pārvaldītu failu ceļu meklēšanu un aizstāšanu
  8. Aizstājiet visu failu pilnu ceļu ar tikai faila nosaukumu bez direktorijas
  9. Aizstāt tekstu, bet tikai tad, ja virknē tiek atrasts cits teksts
  10. Aizstāt tekstu, bet tikai tad, ja virknē nav atrasts cits teksts
  11. Pievienojiet virkni pirms atbilstošā modeļa, izmantojot “ 1 '
  12. Dzēsiet atbilstošās rindas
  13. Dzēsiet atbilstošo rindu un 2 rindas pēc atbilstošās rindas
  14. Dzēsiet visas atstarpes teksta rindas beigās
  15. Divas reizes dzēsiet visas rindiņas, kurām ir atbilstība
  16. Izdzēsiet visas rindas ar vienīgo atstarpi
  17. Dzēsiet visas nedrukājamās rakstzīmes
  18. Ja rindā ir sakritība, rindas beigās pievienojiet kaut ko
  19. Ja rindas ievietošanas rindā pirms spēles ir sakritība
  20. Ja rindas ievietošanas rindā pēc spēles ir sakritība
  21. Ja neatbilst, pievienojiet kaut ko rindas beigās
  22. Ja nav atbilstības, dzēsiet rindu
  23. Pēc atstarpes pievienošanas aiz teksta dublējiet atbilstošo tekstu
  24. Aizstājiet vienu no virkņu saraksta ar jauno virkni
  25. Nomainiet atbilstošo virkni ar virkni, kurā ir jaunas rindas
  26. Noņemiet no faila jaunas rindas un ievietojiet komatu katras rindas beigās
  27. Noņemiet komatus un pievienojiet jaunas rindiņas, lai sadalītu tekstu vairākās rindās
  28. Atrodiet burtu nejutīgo atbilstību un dzēsiet rindiņu
  29. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar jaunu tekstu
  30. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena un tā paša teksta lielajiem burtiem
  31. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena teksta mazajiem burtiem
  32. Aizstājiet visas lielās rakstzīmes tekstā ar mazajiem burtiem
  33. Atrodiet numuru rindā un pievienojiet valūtas simbolu aiz numura
  34. Pievienojiet komatus skaitļiem, kuros ir vairāk nekā 3 cipari
  35. Aizstājiet cilnes rakstzīmes ar 4 atstarpes rakstzīmēm
  36. Aizstājiet 4 secīgas atstarpes rakstzīmes ar tabulēšanas rakstzīmi
  37. Saīsiniet visas rindas līdz pirmajām 80 rakstzīmēm
  38. Meklējiet virknes regulāro tekstu un pievienojiet tam standarta tekstu
  39. Meklējiet virknes regulāro izteiksmi un atrasto virknes otro kopiju pēc tās
  40. Vairāku rindu 'sed' skriptu palaišana no faila
  41. Saskaņojiet daudzrindu modeli un aizstājiet ar jaunu daudzrindu tekstu
  42. Aizstājiet divu vārdu secību, kas atbilst modelim
  43. Izmantojiet vairākas sed komandas no komandrindas
  44. Apvienojiet sed ar citām komandām
  45. Ievietojiet failā tukšu rindu
  46. Izdzēsiet visas burtciparu rakstzīmes no katras faila rindas.
  47. Izmantojiet “&”, lai saskaņotu virkni
  48. Pārslēgt vārdu pāri
  49. Katra vārda pirmo rakstzīmi lieto ar lielo burtu
  50. Drukājiet faila rindu numurus

1. Pamata teksta aizstāšana, izmantojot “sed”

Jebkuru konkrētu teksta daļu var meklēt un aizstāt, izmantojot meklēšanas un aizstāšanas modeli, izmantojot komandu `sed`. Nākamajā piemērā “s” norāda meklēšanas un aizstāšanas uzdevumu. Vārds “Bash” tiks meklēts tekstā, Bash Scripting Language, un, ja vārds tekstā pastāv, tas tiks aizstāts ar vārdu “Perl”.



$izmest ārā 'Bash skriptu valoda' | sed 's/Bash/Perl/'

Izeja:

Teksts satur vārdu “Bash”. Tātad iznākums ir “Perl skriptu valoda”.

Komandu 'sed' var izmantot, lai aizstātu arī jebkuru faila satura daļu. Izveidojiet teksta failu ar nosaukumu weekday.txt ar šādu saturu.

weekday.txt

Pirmdiena
Otrdiena
Trešdiena
Ceturtdiena
Piektdiena
Sestdiena
Svētdiena

Šī komanda meklēs un aizstās tekstu “svētdiena” ar tekstu “svētdiena ir brīvdiena”.

$kaķisweekday.txt
$sed 's/svētdiena/svētdiena ir brīvdiena/'weekday.txt

Izeja:

“Sunday” ir faila weekday.txt failā, un pēc iepriekš minētās komandas “sed” izpildīšanas šis vārds tiek aizstāts ar tekstu “Sunday is holiday”.

Iet uz augšu

2. Aizstājiet visus teksta gadījumus noteiktā faila rindā, izmantojot opciju “g”

'G' opcija tiek izmantota komandā 'sed', lai aizstātu visus atbilstošā modeļa gadījumus. Izveidojiet teksta failu ar nosaukumu python.txt ar šādu saturu, lai zinātu opcijas “g” izmantošanu. Šajā failā ir vārds. 'Python' vairākas reizes.

python.txt

Python ir ļoti populāra valoda.
Python ir viegli lietojams. Python ir viegli iemācīties.
Python ir starpplatformu valoda

Šī komanda aizstās visus “ Python 'Faila otrajā rindā, python.txt . Šeit, 'Python' otrajā rindā notiek divas reizes.

$ kaķu pitons.txt
$ sed“2 s / Python / perl / g”pitons.txt

Izeja:

Pēc skripta palaišanas parādīsies šāda izvade. Šeit visi “Python” gadījumi otrajā rindā tiek aizstāti ar “Perl”.

Iet uz augšu

3. Katrā rindiņā aizstājiet tikai sakritības otro gadījumu

Ja kāds vārds failā parādās vairākas reizes, tad konkrēto vārda sastopamību katrā rindā var aizstāt, izmantojot komandu 'sed' ar notikuma numuru. Šāda komanda 'sed' aizstās meklēšanas modeļa otro parādīšanos katrā faila rindā, python.txt .

$ sed's/Python/perl/g2'pitons.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit meklējamais teksts ' Python ' divas reizes parādās tikai otrajā rindā, un to aizstāj ar tekstu “ Perl '.

Iet uz augšu

4. Katrā rindiņā aizstājiet tikai sakritības pēdējo gadījumu

Izveidojiet teksta failu ar nosaukumu lang.txt ar šādu saturu.

lang.txt

Bash programmēšanas valoda. Python programmēšanas valoda. Perl programmēšanas valoda.
Hiperteksta iezīmēšanas valoda.
Paplašināma iezīmēšanas valoda.

$sed 's/ (.*) Programmēšana/ 1Skripšana/'lang.txt

Iet uz augšu

5. Aizstājiet pirmo atbilstību failā ar jaunu tekstu

Šī komanda aizstās tikai meklēšanas modeļa pirmo atbilstību, ' Python 'Pēc teksta, ‘Perl ‘. Šeit, '1' tiek izmantots, lai atbilstu modeļa pirmajai parādībai.

$ kaķu pitons.txt
$ sed'1 s / Python / perl /'pitons.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Šeit. pirmo “Python” parādīšanos pirmajā rindā aizstāj ar “perl”.

Iet uz augšu

6. Aizstājiet pēdējo atbilstību failā ar jaunu tekstu

Šī komanda aizstās pēdējo meklēšanas modeļa parādīšanos, 'Pitons 'Pēc teksta, ‘Bašs’. Šeit, “$” simbols tiek izmantots, lai atbilstu pēdējā raksta gadījumam.

$ kaķu pitons.txt
$ sed -e'$ s / Python / Bash /'pitons.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

7. Aizmugurējā slīpsvītra aizvietošanas komandās, lai pārvaldītu meklēšanu un failu ceļu nomaiņu

Meklēšanai un aizstāšanai faila ceļā ir jāizvairās no slīpsvītras. Šī komanda 'sed' pievienos slīpsvītru () faila ceļā.

$izmest ārā /mājas/ubuntu/kods/perl/add.pl| sed 's; /; \ /; g'

Izeja:

Faila ceļš, “/Home/ubuntu/code/perl/add.pl” tiek sniegta kā ievads komandā 'sed', un pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

8. Aizstāt visu failu pilnu ceļu ar tikai faila nosaukumu bez direktorijas

Faila nosaukumu var ļoti viegli iegūt no faila ceļa, izmantojot ' basename ' komandu. Komandu 'sed' var izmantot arī, lai izgūtu faila nosaukumu no faila ceļa. Šī komanda izgūs faila nosaukumu tikai no faila ceļa, ko nodrošina komanda 'echo'.

$izmest ārā '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit ir faila nosaukums ' myfile.txt ” tiek izdrukāts kā izvade.

Iet uz augšu

9. Aizstāt tekstu, bet tikai tad, ja virknē ir atrasts kāds cits teksts

Izveidojiet failu ar nosaukumu ' dept.txt ” ar šādu saturu, lai aizstātu jebkuru tekstu, kura pamatā ir cits teksts.

Dept.txt

Kopējais studentu saraksts:

CSE - skaits
EEE - grāfs
Civil - grāfs

Šādā komandā 'sed' tiek izmantotas divas aizstāšanas komandas. Šeit teksts ' Skaits 'Tiks aizstāts ar 100 rindā, kurā ir teksts, “PMP 'Un teksts' Skaitīt ” tiks aizstāts ar 70 rindā, kurā ir meklēšanas modelis, “ EEE ” .

$kaķisDept.txt
$sed -Un '/CSE/s/Count/100/; /EEE/s/Count/70/; 'Dept.txt

Izeja:

Pēc iepriekš minēto komandu izpildes parādīsies šāda izvade.

Iet uz augšu

10. Aizstāt tekstu, bet tikai tad, ja virknē nav atrasts cits teksts

Šī komanda 'sed' aizstās vērtību 'Count' rindā, kurā nav teksta 'CSE'. Dept.txt failā ir divas rindas, kurās nav teksta “CSE”. Tātad, ' Skaits “Teksts tiks aizstāts ar 80 divās rindās.

$kaķisDept.txt
$sed -i -Un '/PMP/! s/Count/80/; 'Dept.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

11. Pievienojiet virkni pirms un pēc atbilstošā modeļa, izmantojot “ 1”

Komandas 'sed' atbilstošo modeļu secība tiek apzīmēta ar ' 1', ' 2' un tā tālāk. Šī komanda 'sed' meklēs modeli 'Bash', un, ja modelis atbilst, teksta aizstāšanas daļā tam piekļūs ar ' 1'. Šeit ievades tekstā tiek meklēts teksts “Bash” un viens teksts tiek pievienots pirms un cits teksts tiek pievienots pēc “ 1”.

$izmest ārā 'Bash valoda' | sed 's/ (Bash )/Learn 1 programmēšana/'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit, ' Uzziniet ' teksts ir pievienots iepriekš 'Bash' un ' programmēšana 'Teksts tiek pievienots pēc' Bašs ”.

Iet uz augšu

12. Dzēsiet atbilstošās rindiņas

“D” opcija tiek izmantota komandā 'sed', lai no faila izdzēstu jebkuru rindu. Izveidojiet failu ar nosaukumu os.txt un pievienojiet šādu saturu, lai pārbaudītu “D” iespēja.

kaķis os.txt

Windows
Linux
Android
TU

Šī komanda 'sed' izdzēsīs šīs rindas no os.txt fails, kurā ir teksts “OS”.

$kaķisos.txt
$sed '/D'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

13. Izdzēsiet atbilstošo rindu un 2 rindiņas aiz atbilstošās rindas

Šī komanda izdzēsīs trīs rindas no faila os.txt ja modelis, ' Linux ” ir atrasts. os.txt satur tekstu, 'Linux 'Otrajā rindā. Tātad šī rinda un nākamās divas rindiņas tiks dzēstas.

$sed ' / Linux /, + 2d'os.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

14. Dzēsiet visas atstarpes teksta rindas beigās

Izmantojot [: tukšs:] klasi var izmantot, lai no teksta vai jebkura faila satura noņemtu atstarpes un cilnes. Šī komanda noņems atstarpes katras faila rindas beigās, os.txt.

$kaķisos.txt
$sed 's/[[: blank:]]*$ //'os.txt

Izeja:

os.txt satur tukšas rindas pēc katras rindas, kuras tiek izdzēstas ar iepriekš minēto komandu `sed`.

Iet uz augšu

15. Divas reizes uz līnijas izdzēsiet visas rindas, kurām ir sakritība

Izveidojiet teksta failu ar nosaukumu, input.txt ar šādu saturu un divas reizes izdzēsiet tās faila rindas, kurās ir meklēšanas modelis.

input.txt

PHP ir servera puses skriptu valoda.
PHP ir atvērtā pirmkoda valoda, un PHP ir reģistrjutīgs.
PHP ir neatkarīgs no platformas.

“PHP” teksta faila otrajā rindā ir divas reizes, input.txt . Šajā piemērā tiek izmantotas divas komandas 'sed', lai noņemtu tās rindas, kurās ir raksts ' php ' divas reizes. Pirmā komanda 'sed' aizstās otro 'php' parādīšanos katrā rindā ar ' dl 'Un nosūtiet izvadi otrajā komandā' sed 'kā ievadi. Otrā komanda 'sed' izdzēsīs tās rindas, kurās ir teksts, ' dl '.

$kaķisinput.txt
$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'

Izeja:

input.txt failā ir divas rindas, kurās ir raksts, 'Php' divas reizes. Tātad, pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

16. Izdzēsiet visas līnijas, kurās ir tikai atstarpe

Lai pārbaudītu šo piemēru, atlasiet jebkuru failu, kura saturā ir tukšas rindas. input.txt failā, kas izveidots iepriekšējā piemērā, ir divas tukšas rindas, kuras var izdzēst, izmantojot šādu komandu `sed`. Šeit “^$” tiek izmantots, lai noskaidrotu tukšās rindas failā, input.txt.

$kaķisinput.txt
$sed '/^$/d'input.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

17. Izdzēsiet visas nedrukājamās rakstzīmes

Neizdrukājamas rakstzīmes var izdzēst no jebkura teksta, aizstājot neizdrukājamas rakstzīmes ar nevienu. Šajā piemērā tiek izmantota klase [: print:], lai noskaidrotu nedrukājamās rakstzīmes. “ T” ir nedrukājams raksturs, un to nevar parsēt tieši ar komandu “echo”. Šim nolūkam rakstzīme “ t” tiek piešķirta mainīgajā cilnē $, kas tiek izmantota komandā “echo”. Komandas 'echo' izvade tiek nosūtīta komandā 'sed', kas no izvades noņems rakstzīmi ' t'.

$cilni= $' t'
$izmest ārā 'Sveiki$ tabWorld'
$izmest ārā 'Sveiki$ tabWorld' | sed 's/[^[: print:]] // g'

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Pirmā komanda 'echo' izdrukās izvadi ar cilnes atstarpi, un komanda 'sed' izdrukās izvadi pēc cilnes atstarpes noņemšanas.

Iet uz augšu

18. Ja rindā ir sakritība, pievienojiet kaut ko rindas beigām

Šī komanda pievienos “10” rindas beigās, kurā ir teksts “Windows” os.txt failu.

$kaķisos.txt
$sed ' / Windows / s / $ / 10 /'os.txt

Izeja:

Pēc komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

19. Ja rindā ir sakritība, pirms teksta ievietojiet rindiņu

Šī komanda 'sed' meklēs tekstu ' PHP nav neatkarīgs no platformas ” iekš input.txt fails, kas izveidots iepriekš. Ja fails satur šo tekstu jebkurā rindiņā, tad “ PHP ir interpretēta valoda ” tiks ievietots pirms šīs rindas.

$kaķisinput.txt
$sed '/PHP ir neatkarīga no platformas/s/^/PHP ir interpretēta valoda. N/'input.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

20. Ja līnijā ir sakritība, ievietojiet rindu aiz šīs līnijas

Šī komanda 'sed' meklēs tekstu ' Linux ” failā os.txt un, ja teksts pastāv jebkurā rindiņā, tad jauns teksts, “ Ubuntu 'Tiks ievietots aiz šīs rindas.

$kaķisos.txt
$sed 's/Linux/& nUbuntu/'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

21. Ja nav spēles, pievienojiet kaut ko rindas beigās

Šī komanda 'sed' meklēs šīs rindas os.txt kurā nav teksta, 'Linux' un pievienojiet tekstu: ' Operētājsistēma 'Katras rindas beigās. Šeit, ' $ “Simbolu izmanto, lai identificētu rindu, kur tiks pievienots jaunais teksts.

$kaķisos.txt
$sed '/Linux/! S/$/Operētājsistēma/'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Failā os.txt ir trīs rindas, kurās nav teksta, “Linux” un jauno tekstu, kas pievienots šo rindu beigās.

Iet uz augšu

22. Ja nav atbilstības, izdzēsiet rindu

Izveidojiet failu ar nosaukumu web.txt un pievienojiet šādu saturu un izdzēsiet rindas, kurās nav atbilstoša raksta. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Šī komanda 'sed' meklēs un dzēsīs tās rindas, kurās nav teksta 'CSS'. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Izeja: Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Failā, kurā ir teksts, ir viena rinda “CSE”. Tātad izvadā ir tikai viena rinda.

Iet uz augšu

23. Dublēt atbilstošu tekstu pēc atstarpes pievienošanas aiz teksta

Šī komanda 'sed' failā meklēs vārdu 'līdz', python.txt un, ja vārds pastāv, tas pats vārds tiks ievietots aiz meklēšanas vārda, pievienojot atstarpi. Šeit, '&' simbolu izmanto, lai pievienotu teksta dublikātu.

$kaķispython.txt
$sed -Un 's / to / & to / g'python.txt

Izeja:

Pēc komandu palaišanas parādīsies šāda izvade. Šeit failā tiek meklēts vārds “līdz”, python.txt un šis vārds pastāv šī faila otrajā rindā. Tātad, ‘Uz 'Ar atstarpi tiek pievienots pēc atbilstošā teksta.

Iet uz augšu

24. Aizstājiet vienu virkņu sarakstu ar jauno virkni

Lai pārbaudītu šo piemēru, jums ir jāizveido divi saraksta faili. Izveidojiet teksta failu ar nosaukumu saraksts1.txt un pievienojiet šādu saturu.

kaķu saraksts1.txt

1001=>Džafars Ali
1023=>Nir Hossain
1067=>Džons Miķelis

Izveidojiet teksta failu ar nosaukumu saraksts2.txt un pievienojiet šādu saturu.

$ cat list2.txt

1001CSE GPA3.63
1002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3.84

Šī komanda 'sed' atbilst divu iepriekš redzamo teksta failu pirmajai kolonnai un aizstāj atbilstošo tekstu ar faila trešās kolonnas vērtību saraksts1.txt.

$kaķissaraksts1.txt
$kaķissaraksts2.txt
$sed ``kaķissaraksts1.txt| awk '{print' -e s / '$ 1' / '$ 3' / '}'``<<<'`kaķu saraksts2.txt`'

Izeja:

1001, 1023 un 1067 no saraksts1.txt faila atbilstība trim datiem saraksts2.txt failu, un šīs vērtības tiek aizstātas ar atbilstošajiem nosaukumiem trešajā slejā saraksts1.txt .

Iet uz augšu

25. Aizstājiet saskaņoto virkni ar virkni, kurā ir jaunas rindas

Šī komanda ievadīs komandu 'echo' un meklēs vārdu, 'Python' tekstā. Ja vārds tekstā ir, tad jauns teksts, “Pievienots teksts” tiks ievietots ar jaunu rindu. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/Pievienots teksts n/' Izeja: Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

26. Izņemiet no faila jaunas rindas un ievietojiet komatu katras rindas beigās

Šī komanda 'sed' aizstās katru jauno rindiņu ar komatu failā os.txt . Šeit, -Ar opciju izmanto, lai rindu atdalītu ar NULL rakstzīmi.

$sed -Ar 's/ n/,/g'os.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

27. Noņemiet komatus un pievienojiet jaunu rindiņu, lai sadalītu tekstu vairākās rindās

Tālāk norādītā komanda 'sed' ņems ar komatu atdalītu rindu no komandas 'echo' kā ievadi un aizstās komatu ar jaunu rindu.

$izmest ārā 'Kaniz Fatema, 30., partija' | sed s/,/ n/g '

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Ievades tekstā ir trīs ar komatiem atdalīti dati, kurus aizstāj ar jaunu rindu un izdrukā trīs rindās.

Iet uz augšu

28. Atrodiet burtu nejutīgo atbilstību un dzēsiet rindiņu

“I” tiek lietots komandā “sed” lielo un mazo burtu nejutīgajai atbilstībai, kas norāda uz lielo burtu ignorēšanu. Šī komanda 'sed' meklēs rindu, kurā ir vārds, 'Linux 'Un izdzēsiet rindu no os.txt failu.

$kaķisos.txt
$sed '/linux/Id'os.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. os.txt satur vārdu “Linux”, kas atbilst modelim, “linux”, lai meklētu reģistrus un neņem vērā reģistrus.

Iet uz augšu

29. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar jaunu tekstu

Šī komanda 'sed' ņems ievadi no komandas 'echo' un aizstās vārdu 'bash' ar vārdu 'PHP'.

$izmest ārā 'Man patīk bash programmēšana' | sed 's/Bash/PHP/i'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit vārds “Bash” saskanēja ar vārdu, “bash”, lai meklētu mazos un mazos burtus, un to aizstāja ar vārdu “PHP”.

Iet uz augšu

30. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena un tā paša teksta lielajiem burtiem

“ U” tiek lietots 'sed', lai jebkuru tekstu pārvērstu par visiem lielajiem burtiem. Šī komanda 'sed' meklēs vārdu, 'Linux ' iekš os.txt failu un, ja vārds pastāv, tas aizstās vārdu ar visiem lielajiem burtiem.

$kaķisos.txt
$sed 's / (linux ) / U 1 / Ig'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Vārds “Linux” os.txt failā tiek aizstāts ar vārdu “LINUX”.

Iet uz augšu

31. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem tā paša teksta mazajiem burtiem

' THE' tiek lietots 'sed', lai pārvērstu jebkuru tekstu par visiem mazajiem burtiem. Šī komanda 'sed' meklēs vārdu, 'Linux' iekš os.txt failu un aizstājiet vārdu ar visiem mazajiem burtiem.

$kaķisos.txt
$sed 's / (linux ) / L 1 / Ig'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Vārdu “Linux” šeit aizstāj ar vārdu “linux”.

Iet uz augšu

32. Aizstājiet visas teksta lielās rakstzīmes ar mazajiem burtiem

Šī komanda 'sed' meklēs visas lielās rakstzīmes os.txt failu un aizstājiet rakstzīmes ar mazajiem burtiem, izmantojot “ L”.

$kaķisos.txt
$sed 's/ (.*)/ L 1/'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

33. Meklējiet skaitli rindā un pievienojiet jebkuru valūtas simbolu pirms numurs

Izveidojiet failu ar nosaukumu items.txt ar šādu saturu.

items.txt

Cietais disks 100
80. monitors
Pele 10

Šī komanda 'sed' meklēs numuru katrā rindā items.txt failu un pirms katra skaitļa pievienojiet valūtas simbolu “$”.

$kaķisitems.txt
$sed 's / ([0-9] ) / $ 1 / g'items.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Šeit pirms katras rindas numura tiek pievienots simbols “$”.

Iet uz augšu

34. Pievienojiet komatus skaitļiem, kuros ir vairāk nekā 3 cipari

Šī komanda 'sed' ņems skaitli kā ievadi no komandas 'echo' un pievienos komatu pēc katras trīs ciparu grupas, skaitot no labās puses. Šeit “: a” norāda etiķeti, un “ta” tiek izmantots grupēšanas procesa atkārtošanai.

$izmest ārā “5098673” | sed -Un: uz-Un 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'

Izeja:

Skaitlis 5098673 ir norādīts komandā 'echo', un komanda 'sed' ģenerēja skaitli 5 098 673, pēc katras trīs ciparu grupas pievienojot komatu.

Iet uz augšu

35. Aizvieto cilnes rakstzīmi ar 4 atstarpēm

Šī komanda 'sed' aizstās katru cilnes ( t) rakstzīmi ar četrām atstarpes rakstzīmēm. '$' Simbols tiek izmantots komandā 'sed', lai atbilstu cilnes rakstzīmei, un 'g' tiek izmantots, lai aizstātu visas cilnes rakstzīmes.

$izmest ārā -Un “1 t2 t3 ' | sed$'s/ t//g'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

36. Aizstāj 4 secīgas atstarpes rakstzīmes ar tabulēšanas rakstzīmi

Šī komanda aizstās 4 secīgas rakstzīmes ar cilnes ( t) rakstzīmi.

$izmest ārā -Un '1 2' | sed$'s// t/g'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

37. Nogrieziet visas rindas līdz pirmajām 80 rakstzīmēm

Izveidojiet teksta failu ar nosaukumu in.txt kas satur rindas vairāk nekā 80 rakstzīmes, lai pārbaudītu šo piemēru.

in.txt

PHP ir servera puses skriptu valoda.
PHP ir atvērtā pirmkoda valoda, un PHP ir reģistrjutīgs. PHP ir neatkarīgs no platformas.
Šī komanda 'sed' saīsinās katru rindu in.txt failu 80 rakstzīmēs.

$kaķisin.txt
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. In.txt faila otrā rinda satur vairāk nekā 80 rakstzīmes, un šī rinda ir saīsināta izvadē.

Iet uz augšu

38. Meklējiet virknes regulāro tekstu un pievienojiet tam standarta tekstu

Šī komanda 'sed' meklēs tekstu ' Sveiki 'Ievades tekstā un pievienojiet tekstu,' Džons 'Pēc šī teksta.

$izmest ārā 'Sveiks kā tev iet?' | sed 's/ (sveiki )/ 1 Jānis/'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

39. Meklējiet virknes regulāro izteiksmi un pievienojiet tekstu pēc otrās atbilstības katrā rindā

Šī komanda 'sed' meklēs tekstu ' PHP 'Katrā rindā input.txt un aizstājiet otro atbilstību katrā rindā ar tekstu, “Pievienots jauns teksts” .

$kaķisinput.txt
$sed 's/ (PHP )/ 1 (pievienots jauns teksts)/2'input.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Meklēšanas teksts ' PHP ”Divas reizes parādās otrā un trešā rindā input.txt failu. Tātad teksts ' Pievienots jauns teksts ”Ir ievietota otrajā un trešajā rindā.

Iet uz augšu

40. Vairāku rindu `sed` skriptu palaišana no faila

Failā var saglabāt vairākus 'sed' skriptus, un visus skriptus var izpildīt kopā, izpildot komandu 'sed'. Izveidojiet failu ar nosaukumu ‘Sedcmd 'Un pievienojiet šādu saturu. Šeit failā tiek pievienoti divi 'sed' skripti. Tekstu aizstās viens skripts: ' PHP ‘Līdz “ASP Tekstu aizstās cits skripts, neatkarīgs 'Pēc teksta', atkarīgs '.

sedcmd

s/PHP/ASP/
s/neatkarīgs/atkarīgs/

Šī komanda 'sed' aizstās visu 'PHP' un 'neatkarīgo' tekstu ar 'ASP' un 'atkarīgo'. Šeit komanda 'sed' tiek izmantota opcija '-f', lai no faila izpildītu skriptu 'sed'.

$kaķissedcmd
$sed -fsedcmd input.txt

Izeja:

Pēc virs komandu izpildes parādīsies šāda izvade.

Iet uz augšu

41. Saskaņojiet daudzrindu rakstu un aizstājiet ar jaunu daudzrindu tekstu

Šī komanda 'sed' meklēs vairāku rindu tekstu, “Linux nAndroid” un, ja modelis sakrīt, atbilstošās rindas tiks aizstātas ar daudzrindu tekstu, “Ubuntu nAndroid Lollipop ‘. Šeit P un D tiek izmantoti daudzrindu apstrādei.

$kaķisos.txt
$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

42. Aizstājiet divu vārdu secību tekstā, kas atbilst paraugam

Šī komanda 'sed' ņems divu vārdu ievadi no komandas 'echo' un aizstās šo vārdu secību.

$izmest ārā 'perl python' | sed -Un 's/ ([^]*)* ([^]*)/ 2 1/'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

43. Izpildiet vairākas `sed` komandas no komandrindas

“-E” opcija tiek izmantota komandā “sed”, lai no komandrindas palaistu vairākus “sed” skriptus. Šī komanda 'sed' uzņems tekstu kā ievadi no komandas 'echo' un aizstās ' Ubuntu 'Ar' Kubuntu ' un ' simtiem 'Ar' Fedora '.

$izmest ārā 'Ubuntu Centos Debian' | sed -Un 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit “Ubuntu” un “Centos” tiek aizstāti ar “Kubuntu” un “Fedora”.

Iet uz augšu

44. Apvienojiet `sed` ar citām komandām

Šī komanda apvienos komandu 'sed' ar komandu 'cat'. Pirmā komanda 'sed' tiks ievadīta no os.txt failu un nosūtiet komandas izvadi otrajai komandai 'sed' pēc teksta 'Linux' aizstāšanas ar 'Fedora'. Otrā komanda 'sed' aizstās tekstu 'Windows' ar 'Windows 10'.

$kaķisos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

45. Ievietojiet failā tukšu rindu

Izveidojiet failu ar nosaukumu stdlist ar šādu saturu.

stdlist

#ID #Vārds
[101] -Bet
[102] -Neha

Opciju “G” izmanto, lai failā ievietotu tukšu rindu. Šī komanda 'sed' pēc katras rindas ievietos tukšas rindas stdlist failu.

$kaķisstdlist
$sedG stdlist

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Pēc katras faila rindas tiek ievietota tukša rinda.

Iet uz augšu

46. ​​Aizstājiet visas burtciparu rakstzīmes ar atstarpi katrā faila rindā.

Šī komanda aizstās visas burtciparu rakstzīmes ar atstarpi stdlist failu.

$kaķisstdlist
$ bet 's / [A-Za-z0-9] // g'stdlist

Izeja:

Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.

Iet uz augšu

47. Izmantojiet “&”, lai izdrukātu atbilstošu virkni

Šī komanda meklēs vārdu, kas sākas ar “L”, un aizstās tekstu ar pievienošanu “Atbilstošā virkne ir - “Ar atbilstošo vārdu, izmantojot simbolu“ & ””. Šeit “p” tiek izmantots, lai drukātu modificēto tekstu.

$sed -n 's/^L/Atbilstošā virkne ir - &/p'os.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.

Iet uz augšu

48. Pārslēgt vārdu pāri failā

Izveidojiet teksta failu ar nosaukumu course.txt ar šādu saturu, kas satur vārdu pāri katrā rindā.

course.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

Šī komanda mainīs vārdu pāri katrā faila rindā, course.txt .

$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txt

Izeja:

Pēc vārdu pāra pārslēgšanas katrā rindā parādīsies šāda izvade.

Iet uz augšu

49. Ar lielo burtu lieto katra vārda pirmo rakstzīmi

Šī komanda 'sed' ņems ievades tekstu no komandas 'echo' un katra vārda pirmo rakstzīmi pārvērtīs par lielo burtu.

$izmest ārā 'Man patīk bash programmēšana' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Ievades teksts, man patīk bash programmēšana, tiek iespiests kā I Like Bash Programming pēc pirmā vārda lielo burtu izmantošanas.

Iet uz augšu

50. Drukājiet faila rindu numurus

Simbols '=' tiek izmantots komandai 'sed', lai izdrukātu rindas numuru pirms katras faila rindas. Šī komanda drukās saturu os.txt fails ar rindas numuru.

$sed '='os.txt

Izeja:

Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Tajā ir četras rindas os.txt failu. Tātad rindas numurs tiek izdrukāts pirms katras faila rindas.

Iet uz augšu

Secinājums:

Šajā apmācībā ir izskaidroti dažādi komandas 'sed' lietojumi, izmantojot ļoti vienkāršus piemērus. Visu šeit minēto 'sed' skriptu izvade tiek ģenerēta īslaicīgi, un sākotnējā faila saturs palika nemainīgs. Bet, ja vēlaties, varat modificēt sākotnējo failu, izmantojot komandu-sed vai –i in-place. Ja esat jauns Linux lietotājs un vēlaties apgūt komandas 'sed' pamata lietojumus, lai veiktu dažāda veida virkņu manipulācijas uzdevumus, tad šī apmācība jums palīdzēs. Pēc šīs apmācības lasīšanas ceru, ka jebkurš lietotājs iegūs skaidru priekšstatu par komandas `sed` funkcijām.

bieži uzdotie jautājumi

Kādam nolūkam tiek izmantota komanda sed?

Komandai sed ir vairāki dažādi lietojumi. Tomēr galvenais lietojums ir vārdu aizstāšana failā vai atrašana un aizstāšana.

Lieliskais ar sed ir tas, ka jūs varat meklēt vārdu failā un aizstāt to, bet jums nekad nav pat jāatver fails - sed vienkārši dara visu jūsu vietā!

Turklāt to var izmantot dzēšanai. Viss, kas jums jādara, ir ierakstīt sed, kuru vēlaties atrast, aizstāt vai dzēst, un tas to parādīs jums - pēc tam varat izvēlēties aizstāt šo vārdu vai izdzēst visas vārda pēdas no sava faila.

sed ir fantastisks rīks, lai varētu aizstāt tādas lietas kā IP adreses un visu, kas ir ļoti jutīgs un ko citādi nevēlaties ievietot failā. sed ir jāzina jebkuram programmatūras inženierim!

Kas ir S un G komandā sed?

Vienkāršāk izsakoties, S funkcija, ko var izmantot sed, vienkārši nozīmē “aizstājējs”. Pēc S ievadīšanas jūs varat aizstāt vai aizstāt visu, ko vēlaties - vienkārši ierakstot S, tiks aizstāts tikai pirmais vārda gadījums rindā.

Tāpēc, ja jums ir teikums vai rindiņa, kurā tas minēts vairāk nekā vienu reizi, funkcija S nav ideāla, jo tā aizstās tikai pirmo gadījumu. Varat norādīt modeli, lai S ik ​​pēc diviem gadījumiem aizstātu vārdus.

Norādot G komandas sed beigās, tiks veikta globāla nomaiņa (tas nozīmē G). Paturot to prātā, ja norādīsit G, tas aizstās katru jūsu izvēlētā vārda sastopamību, nevis tikai pirmo S gadījumu.

Kā palaist sed skriptu?

Sed skriptu var palaist vairākos veidos, bet visbiežāk tas ir komandrindā. Šeit jūs varat vienkārši norādīt sed un failu, kurā vēlaties izmantot komandu.

Tas ļauj šajā failā izmantot sed, ļaujot pēc vajadzības atrast, dzēst un aizstāt.

Varat to izmantot arī čaulas skriptā, un šādā veidā jūs varat nodot skriptam visu, ko vēlaties, un tas izpildīs komandu atrast un aizstāt. Tas ir noderīgi, ja nevēlaties skriptā norādīt ļoti jutīgus datus, tāpēc varat tos nodot kā mainīgo

Paturiet prātā, ka tas, protams, ir pieejams tikai operētājsistēmā Linux, un tāpēc jums būs jāpārliecinās, ka jums ir Linux komandrinda, lai palaistu savu sed skriptu.