Sed: Uzziniet šo klasisko teksta apstrādes rīku

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


Sed ir utilītu programma un vienkārša skriptu valoda, ko izmanto teksta rediģēšanai. Nosaukums ir saīsinājums no “straumes redaktora”, un tā mērķis tiešām ir ievades straumju rediģēšana – parasti atsevišķas faila rindas vai atsevišķa straume no stdin (standarta ievade)..

Valoda nav īpaši varena. Lai arī sed ir Turing pabeigts, tas nepavisam nav efektīvs nevienam reālam programmēšanas uzdevumam – piemēram, tam ir tikai divi pieejamie mainīgie. Tomēr tas ir ļoti noderīgi, lai programmētiski atrastu un rediģētu tekstu tekstus failos, no komandrindas vai apvalka skripta..

Vissvarīgākā sed komanda ir s, kas ir aizstāšanas komanda. Komanda ņem divus argumentus, kā arī opciju karogu. Piemēram, ja jūs vēlaties labot katru britu valodas burtu “color” gadījumu ar amerikāņu “colour” un uzrakstīt laboto versiju jaunā failā, no komandrindas jūs varat rīkoties šādi:

sed s / krāsa / krāsa / g new.file

Īss skaidrojums:

  • S / sāk aizstāšanas komandu.
  • Neatkarīgi no tā, kas atrodas starp pirmo slīpsvītru pāri, ir jāsakrīt. Šajā gadījumā tas ir vārds “krāsa”, bet tas varētu būt arī regulārs izteiciens – raksts, nevis konkrēta rakstzīmju virkne.
  • Pēc atbilstošā modeļa ir aizstājošā virkne.
  • G nozīmē “globāls” vai “dari to katru reizi, ne tikai pirmo reizi”.

Gan atbilstošais modelis, gan aizstāšana var būt mainīgi. Ja saderīgais raksts ir regulāra izteiksme un vēlaties to grozīt (ne tikai aizstāt), varat izmantot simbolu ( & ), lai norādītu atbilstošo modeli. Piemēram, pieņemsim, ka jūs vēlējāties visus vienkārša teksta URL pārvērst HTML hipersaitēs. Jūs varētu darīt šādi:

sed ‘s_http [:] // [^] * _&_ ‘

  • Lai slīpumu būtu vieglāk lasīt ar visām slīpsvītrām, kas jau atrodas vietrāžos URL, tiek izmantots pasvītru dalītājs, nevis slīpsvītra..
  • Atbilstošais modelis ir regulāra izteiksme, kas atbilst labi veidotiem vietrāžiem URL (lai arī ierobežotā veidā).
  • Aizvietošana izveido enkura tagu ar atbilstošo modeli (URL) taga href atribūtā un tekstā.

Šāda veida atrašana un aizstāšana bija sākotnējais iemesls, kāpēc tika izgudrots sed, un tas joprojām ir visizplatītākais lietojums.

Sed tiešsaistes resursi un konsultācijas

  • Sed – ievads un apmācība Unix Wizard’s Grymoire, sniedz lielisku ievaddaļu un atsauci uz sed;
  • Sed apmācība ir pienācīgs ievads, kas izskaidro dažus aizkulišu darbus, kurus seds veic;
  • Sed apmācība konsultāciju punktā ir ļoti skaidra un metodiska svarīgāko sed koncepciju izklāsts;
  • Sed izmantošana ir lieliska divu daļu apmācība no Digital Ocean;
  • YouTuber Kris Occhipinti ir 18 daļu Sed video apmācība;
  • Sed-Tutorial no LinuxHowtos ir maza, bet noderīga apmācība par sed;
  • Sed Subreddit nav ļoti aktīvs, taču daudzi sed (un ar to saistīti) jautājumi parādās regex un komandrindas apakšdredītos;

Grāmatas par Sedu

  • Sed & Awk (1997), Dougherty un Robbins, ir klasiskais teksts divos svarīgākajos komandrindas teksta rīkos; ja jūs varat lasīt tikai vienu lietu sed, tas, iespējams, ir tas, kas jālasa; apskatiet arī parocīgo pavadoni Aidu & Awk kabatas atsauce;
  • Galīgais Sed ceļvedis: Daniela A Goldmana apmācība un atsauces (2013), sniedz daudz mūsdienīgāku sed lietošanas perspektīvu, īpašu uzsvaru liekot uz GNU sed (gsed);
  • Ksh, Awk un Sed skriptu kolekcija: Stīva Myersa apgūtā Unix programmēšana, izmantojot praktiskos piemērus () ir noderīgu čaulas skriptu pavārgrāmata..

Sed vs Awk un citas iespējas

Sed rīks ir tikai viena no daudzajām teksta meklēšanas un manipulēšanas iespējām no komandrindas vai apvalka skriptiem. Visbiežāk salīdzinātais rīks ir Awk, bet ir arī grep. Turklāt jūs varat izmantot stabilākas skriptu valodas, piemēram, Perl vai Python.

Šeit ir daži resursi, kas palīdzēs jums noteikt, kurš rīks ir vislabākais teksta meklēšanai un rediģēšanai vietnē:

  • Grep vs Sed vs Awk: Kas kompetentajam / uzlabotajam Linux apvalka lietotājam būtu jāzina, tas ir fantastisks raksts, kurā aprakstīti trīs galvenie teksta apstrādes rīki ar daudzām detaļām par to, kad kuru izmantot;
  • Kad lietot Sed / Awk Over Perl vai Python, forumā tiek ievietota lieliska saruna par to, kad lietot pilnas skriptu valodas salīdzinājumā ar vienkāršākiem teksta apstrādes rīkiem;
  • Sed, Awk un citu Unix parsēšanas utilītu funkcionālās un veiktspējas atšķirības nodrošina detalizētu tehnisko salīdzinājumu, ieskaitot piezīmes par ātrumu;
  • Kāda ir atšķirība starp Sed un Awk? StackExchange tika uzskatīts par ārpus tematu, bet par laimi daži lietotāji tik un tā sniedza ļoti noderīgas atbildes; ja jums nav laika detalizētākiem skaidrojumiem iepriekš, šī lapa sniedz vislabāko 30 sekunžu pārskatu.

Grāmatas un resursi par saistītām tēmām

Lai efektīvi izmantotu sed, jums ir nepieciešamas prasmes divās saistītās jomās: regulārajās izteiksmēs un čaulas skriptā kopumā. Šeit ir dažas grāmatas un tiešsaistes konsultācijas, kas palīdzēs jums uzlabot jūsu sed spējas.

Papildus šiem resursiem jums vajadzētu arī apskatīt mūsu lapas Awk un Bash.

Grāmatas

  • Maikla Ficdžeralda iepazīstināšana ar Regular Expressions (2012) ir ļoti noderīgs ievadteksts, kas šo potenciāli iebiedējošo tēmu padara viegli saprotamu; tajā ietilpst arī sed skriptēšana, kā arī informācija par regex izmantošanu Perl
  • Džefrijs Frīds ir regulārā izteiksmes apgūšana (2006), kas ir jūsu nākamā līmeņa regeksa resurss pēc ievadteksta;
  • Robbins and Beebe klasiskā čaulas skriptēšana (2005) ir grāmata, kas aptver vissvarīgākos Unix komandrindas un skriptu veidošanas rīkus, ieskaitot sed; Arnolds Robbins, viens no autoriem, ir arī klasiskās Sed līdzautors & Awk grāmata, kas uzskaitīta iepriekš.

Tiešsaistes resursi

Par šīm tēmām ir daudz tiešsaistes resursu. Šeit ir tikai daži no visnoderīgākajiem:

  • RegExr ir tiešsaistes rīks regulāru izteiksmju apgūšanai, veidošanai un pārbaudei;
  • RegEx101 ir vēl viens tiešsaistes regulārās izteiksmes testeris ar iebūvētu apkrāptu lapu un noderīgām atsauksmēm par parsēšanu;
  • Regex Cheat Sheet sniedz visaptverošu atsauci, kad jums jāzina, kura šķietami nejauša rakstzīmju virkne jums jāievada, lai atrastu šķietami nejaušu rakstzīmju virkni, kuru meklējat;
  • Iepriekš minētā Grymoire ir informācija par Unix skriptiem;
  • Linux apvalku skriptu apmācības apmācība ir viena no labākajām tiešsaistes apmācībām Baša apgūšanai.

Kopsavilkums

Bija laiks, kad praktiski visi nopietnie datoru lietotāji ļoti labi zināja tādas komandrindas rīkus kā sed. Par labu vai sliktu, tas laiks ir sen pagājis. Mūsdienās pat daudzi pieredzējuši izstrādātāji nezina, kā izmantot šos pamata rīkus.

Tomēr, ja jūs interesē patiesi palielināt savu enerģijas patēriņa efektivitāti – it īpaši Linux, Unix vai Mac vidē -, ir svarīgi, lai komandā būtu labs rokturis. Tas ir īpaši noderīgi, ja veicat jebkādu tīmekļa attīstību vai administrēšanu, jo lielākā daļa tīmekļa darbojas Linux serveros, un lielākā daļa attālinātā servera pārvaldības tiek veikta komandrindā.

Sed, kas ir iekļauts gandrīz katrā Linux un Unix līdzīgā operētājsistēmā, var palīdzēt atrast to, ko meklējat. Ja jums nav galddatora lietotājam draudzīgu meklēšanas rīku, tas var kļūt būtisks. Tas nav tik grūti iemācīties, un jums nekad nebūs žēl, ka zināt, kā izmantot šo klasisko rīku.

Papildu lasīšana un resursi

Mums ir vairāk ar datoriem saistītu ceļvežu, mācību materiālu un infografiku:

  • Linux programmēšanas ievads un resursi: šī dziļā niršana Linux programmēšanā nonāk kodolā, kur ir visas darbības.
  • Baša programmēšanas resursi: sāciet darbu ar vissvarīgāko Unix komandrindas apvalku.
  • Awk resursi: uzziniet visu par sed māsas rīku Awk.

Tīmekļa pārziņa rīku galīgais saraksts A-Z

Seds, Awks un Bašs ir tikai daļa no lielā rīku kolekcijas, kas ļauj sistēmas administratoriem pārvaldīt operētājsistēmas. Tīmekļa pārziņa rīku galīgais saraksts A-Z sniegs jums daudz palīdzības, veicot savu darbu.

Tīmekļa pārziņa rīku galīgais saraksts A-Z
Tīmekļa pārziņa rīku galīgais saraksts A-Z

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me