Share to: share facebook share twitter share wa share telegram print page

Sed

Tento článek je o počítačovém programu. Další významy jsou uvedeny na stránce Sed (rozcestník).

sed (zkratka pro stream editor) je jednoduchý, ale výkonný počítačový program, sloužící k aplikaci rozličných předdefinovaných textových transformací na sekvenční proud textových dat. Po jednotlivých řádcích prochází vstupní soubor, dle pravidel určených v jednoduchém jazyku (sedovském skriptu) každý řádek upraví a poté vypíše. Sed původně vytvořil někdy na přelomu let 1973/1974 Lee E. McMahonBellových laboratoří jako unixový nástroj, dnes je však dostupný pro téměř všechny operační systémy podporující příkazový řádek.

Popis

Sed je často nazýván neinteraktivním textovým editorem. Od konvenčních textových editorů se odlišuje způsobem, jakým je vstup zpracováván. Místo toho, aby jednou prošel seznam příkazů a každý z nich aplikoval na celý text, uložený v paměti počítače, prochází sed textovým souborem jednou a na každý řádek aplikuje seznam příkazů. Protože je v jednu chvíli v paměti jen jediný řádek, dokáže sed zpracovat i opravdu velké textové soubory.

Sedovské příkazy vychází z editoru ed a většina příkazů funguje podobně, avšak v obrácené formě. Například: příkaz 25d znamená je-li toto řádek číslo 25, pak jej smaž (a nevypisuj), namísto jdi na řádek 25 a smaž ho, jako tomu bylo v editoru ed. Důležitou výjimku tvoří příkazy pro kopírování a přesun, které zasahují do více řádků a nemají tedy v sedu přímý ekvivalent. Namísto nich přináší sed zvláštní vyrovnávací paměť (buffer) a dodatečné příkazy pro práci s ním. Například příkaz edu pro zkopírování řádku 25 na řádek 76 (25t76) by byl v sedu proveden pomocí dvou příkazů (25h; 76g) pro uložení řádku do bufferu až do chvíle, kdy bude znovu použit.

Následující příklad ukazuje typické využití sedu:

$ sed 's/původní/nový/g' vstupniSoubor > vystupniSoubor

V příkazu předaném jako první parametr s znamená nahraď (substitute), g znamená globálně, tj. každý vyhovující výskyt na řádku bude nahrazen. Za prvním lomítkem začíná regulární výraz pro vyhledání. Za druhým lomítkem je výraz pro jeho nahrazení. Příkaz náhrady (s///) je nejsilnější a nejpoužívanější sedovský příkaz. Příkaz samotný případně další příkazy mohou být přidány s parametrem -e.

V systémech unixového typu je sed často využíván jako filtr v rouře:

$ generuj_data | sed 's/x/y/'

Na vytvořená data je aplikován malá změna, spočívající v náhradě x za y.

Více nahrazení či jiných příkazů lze uložit například do souboru nahrada.sed a poté použít:

$ sed -f nahrada.sed vstupniSoubor > vystupniSoubor

Vedle nahrazování jsou možné i další jednoduché úpravy. Následující skript kupříkladu smaže prázdné řádky nebo řádky obsahující jen mezery:

$ sed '/^ *$/d' vstupniSoubor

V příkladu je použito následujících metaznaků:

  • ^ : vyhovuje začátku řádku
  • $ : vyhovuje konci řádku
  • . : vyhovuje libovolnému jednomu znaku
  • * : vyhovuje žádnému nebo libovolnému počtu výskytů předchozího znaku
  • [] : vyhovuje kterémukoli ze znaků uvedených v hranatých závorkách

Komplexní konstrukce jsou v sedu možné do té míry, že jej lze považovat za vysoce specializovaný, třebaže jednoduchý, programovací jazyk. Tok programu lze například řídit použitím návěstí (dvojtečka následovaná řetězcem, tj. názvem návěstí) a instrukce b; instrukce b, následovaná názvem návěstí přesune zpracovávání do bloku za návěstím. Pokud návěstí neexistuje, pak dojde k ukončení skriptu.

Sed je jedním z nejstarších unixových nástrojů, umožňujících zpracování datových souborů z příkazového řádku. Stal se z něj přirozený nástupce populárního příkazu grep. Jako bratranec pozdějšího AWK umožnil sed provádění zajímavých a mocných datových úprav v kombinaci s shellovými skripty. Sed byl také jedním z prvních unixových nástrojů, který skutečně vybízel k všestrannému využití regulárních výrazů. Co se týče rychlosti operací je sed obecně rychlejší než Perl a podstatně rychlejší než AWK.

SedAWK jsou často prohlašovány za předchůdce a inspirativní zdroje pro jazyk Perl; konkrétně příkaz s/// je součástí perlovské syntaxe.

Jazyk sedu nemá proměnné a má pouze primitivní goto a schopnost větvení. Přesto je však turingovsky úplný.

GNU sed přináší několik nových funkcí, jako je okamžitá editace souborů (tj. nahrazení původního souboru výsledkem aplikace sedovského programu). Okamžité editace se často využívá namísto skriptů editoru ed, např.:

$ sed -i 's/abc/def/' soubor

…lze použít místo:

$ ed soubor
1,$ s/abc/def/
w
q

Také existuje rozšířená verze sedu, nazvaná Super-sed (ssed), zahrnující regulární výrazy kompatibilní s Perlem.

Ukázka kódu

Přestože sed obvykle pracuje s jedním řádkem, následující příklad odebere znak nového řádku z věty tam, kde následující řádek začíná mezerou.

Mějme následující text:

Tohle je moje kočka,
  jmenuje se Micina
Tohle je můj pes,
  jmenuje se Žeryk

A tady je příkaz:

sed 'N; s/\n //'

Výsledek:

Tohle je moje kočka, jmenuje se Micina
Tohle je můj pes, jmenuje se Žeryk

Pro obecný případ připojování vícero následujících řádků s mezerami (a libovolného počtu) na začátku je potřeba použít složitější konstrukci jako:[pozn. 1]

sed ':a; N; s/\n  */ /; ta; P; D'

Kde

  • :a : nastaví značku a
  • N : přečte další řádek
  • s : nahrazení
  • t : podmíněný skok na značku
  • P : vytiskne další řádek, který je zpracován
  • D : jej smaže, takže není vytištěn dvakrát

Poznámky

  1. U starších/ne-GNU implementací je potřeba respektovat nemožnost zakončení značky středníkem, také jiné chování N pro poslední řádek, takže příkaz by vypadal: sed -e ':a' -e '$!N; s/\n */ /; ta' -e 'P; D'.[1]

Reference

  1. sed, a stream editor [online]. GNU [cit. 2021-12-30]. Kapitola 7.1 Joining lines. Dostupné online. 

Literatura

Externí odkazy

Read other articles:

205th Infantry Division205. Infanterie-DivisionInsignia of the 205th Infantry DivisionActive1 January 1940 – 8 May 1945Country Nazi GermanyBranch Heer (Wehrmacht)TypeInfantrySizeDivisionNickname(s)Mushroom DivisionEngagementsWorld War IIPhony WarOccupation of FranceEastern FrontOperation BagrationCourland PocketCommandersNotablecommandersPaul SeyffardtHorst von MellenthinKarl-Hans GieseMilitary unit The 205th Infantry Division (German: 205. Infanterie-Division) was a German infantry di...

 

Ma Lin馬麟 Governatore dello QinghaiDurata mandatomaggio 1931 –5 marzo 1938 PredecessoreMa Qi SuccessoreMa Bufang Dati generaliPartito politico Kuomintang ProfessioneMilitare Ma Lin馬麟NascitaLinxia, 1873 MorteQinghai, 26 gennaio 1945 EtniaHui Religionemusulmana Dati militariPaese servito Impero Qing Repubblica di Cina Forza armata Esercito Rivoluzionario Nazionale Anni di servizio1890 - 1945 GradoGenerale GuerreRibellione dei BoxerConflitto musulmano nel...

 

 Nota: Para outros significados de Diogo da Silva, veja Diogo da Silva (desambiguação). Diogo da Silva, 1.º Conde de Portalegre Nascimento Diogo da Silva1430Ceuta Morte 20 de fevereiro de 1504 Cidadania Reino de Portugal Progenitores Rui Gomes da Silva, 1.º alcaide de Campo MaiorIsabel de Meneses Ocupação oficial [edite no Wikidata] D. Diogo da Silva (c. 1430 - c. 1504), 1.º conde de Portalegre, foi um nobre e figura eminente da corte portuguesa na segunda metade do século XV...

هذه مقالة غير مراجعة. ينبغي أن يزال هذا القالب بعد أن يراجعها محرر مغاير للذي أنشأها؛ إذا لزم الأمر فيجب أن توسم المقالة بقوالب الصيانة المناسبة. يمكن أيضاً تقديم طلب لمراجعة المقالة في الصفحة المخصصة لذلك. (يناير 2022) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فض�...

 

بوابة طنجة أرشيف شخصية مختارة طالع صفحة التصنيفات طالع صفحة الأرشيف طالع صفحة البناء طالع صفحة البوابات حدّث محتوى الصفحة أرشيفعنت   مقالة   مدينة   شخصية   صورة   هل تعلم   مقولة   ⬆️⬇️ رجوع 1  ع - ن - ت ⇧  ⇩ محمد بن عبد الله بن محمد اللواتي الطنجي المعر�...

 

Florinas FiolìnasKomuneComune di FlorinasLokasi Florinas di Provinsi SassariNegara ItaliaWilayah SardiniaProvinsiSassari (SS)Pemerintahan • Wali kotaEnrico LobinoLuas • Total36,06 km2 (13,92 sq mi)Ketinggian417 m (1,368 ft)Populasi (2016) • Total1,538[1]Zona waktuUTC+1 (CET) • Musim panas (DST)UTC+2 (CEST)Kode pos07030Kode area telepon079Situs webhttp://www.comune.florinas.ss.it Florinas (bahasa Sardin...

Type of anthropogenic effect on the environment A coastal development hazard is something that affects the natural environment by human activities and products. As coasts become more developed, the vulnerability component of the equation increases as there is more value at risk to the hazard.[1] The likelihood component of the equation also increases in terms of there being more value on the coast so a higher chance of hazardous situation occurring.[2] Fundamentally humans cre...

 

名探偵コナン > 名探偵コナン (アニメ) > Template:名探偵コナン映画作品 > 名探偵コナン 黒鉄の魚影 公式サイト等からのストーリーなどの文章のコピー&ペースト等による転載は行わないでください。著作権侵害となり、削除の方針ケースB-1により削除の対象となります。 名探偵コナン 黒鉄の魚影(サブマリン) Detective Conan Black Iron Submarine監督 立川譲...

 

Road in New South Wales, Australia Light Horse InterchangeNew South WalesApproaching the Light Horse Interchange on the M4 MotorwayLight Horse InterchangeCoordinates 33°47′53″S 150°51′15″E / 33.79806°S 150.85417°E / -33.79806; 150.85417 General informationTypeRoad junctionJunction typeModified four-level stack interchangeLocationEastern CreekMaximum height23 m (75 ft)Spans18OpenedDecember 2005 (2005-12)Built byLeighton Contractors, Abigr...

Academic journalInformation ResearchDisciplineInformation scienceLanguageEnglishPublication detailsHistory1995–presentPublisherUniversity of BoråsFrequencyQuarterlyOpen accessYesLicenseCC BY-ND-NC 1.0Impact factor0.574 (2016)Standard abbreviationsISO 4 (alt) · Bluebook (alt1 · alt2)NLM (alt) · MathSciNet (alt )ISO 4Inf. Res.IndexingCODEN (alt) · JSTOR (alt) · LCCN (alt)MIAR · NLM (alt) · Scopu...

 

Ethnic group associated with the Indian state of Odisha Odias redirects here. For other uses, see Odia. This article may require copy editing for grammar, style, cohesion, tone, or spelling. You can assist by editing it. (February 2023) (Learn how and when to remove this template message) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Odia pe...

 

District in Buenos Aires canton, Puntarenas province, Costa Rica This article is about the district in Puntarenas province. For the canton, see Buenos Aires (canton). For the district in Alajuela province, see Buenos Aires District, Palmares. District in Puntarenas, Costa RicaBuenos AiresDistrictBuenos Aires districtBuenos AiresBuenos Aires district location in Costa RicaCoordinates: 9°11′54″N 83°16′54″W / 9.1984622°N 83.2816226°W / 9.1984622; -83.2816226Co...

Chinese erotic novella Ruyijun zhuan Original title如意君傳TranslatorCharles StoneCountryChina (Ming dynasty)LanguageChinesePublication dateEarly 16th-centuryMedia typePrintPages45 Ruyijun zhuanTraditional Chinese如意君傳Simplified Chinese如意君传TranscriptionsStandard MandarinHanyu PinyinRúyìjūn zhuàn A mid 18th-century edition of Ruyijun zhuan Ruyijun zhuan (如意君傳),[a] translated into English as The Lord of Perfect Satisfaction,[2][3...

 

Former railway station in Wales Portskewett PierPortskewett Pier. The works at Sudbrook for the Severn Tunnel may be seen in the background.General informationLocationBlack Rock, MonmouthshireWalesPlatforms2Other informationStatusDisusedHistoryOriginal companyBristol & South Wales Union RailwayPre-groupingGreat Western RailwayKey dates1863Opened1881Fire1886Closed Portskewett Pier was a station on the Bristol & South Wales Union Railway. The pier at Black Rock, near Portskewett, was th...

 

Intercollegiate basketball season 2020–21 Vanderbilt Commodores women's basketballConferenceSoutheastern ConferenceRecord4–4 (0–3 SEC)Head coachStephanie White (5th season)Assistant coaches Kelly Komara Gary Redus II Marqu'es Webb Home arenaMemorial GymnasiumSeasons← 2019–202021–22 → 2020–21 SEC women's basketball standings vte Conf Overall Team W   L   PCT W   L   PCT No. 4 Texas A&M 13 – 1   .929 25 – 3 ...

2014 EP by Dead Letter CircusStand ApartEP by Dead Letter CircusReleased29 August 2014GenreAlternative rock, progressive rockLength24:28LabelUNFDDead Letter Circus chronology The Catalyst Fire(2013) Stand Apart(2014) Aesthesis(2015) Stand Apart is an acoustic and third overall EP by Australian alternative rock band Dead Letter Circus. It was exclusively released through iTunes on 29 August 2014 preceding four sold-out acoustic shows.[1] The songs are re-imagined versions (incl...

 

Bangladesh Railway Class 20002021 at Tongi rail stationType and originPower typeDiesel-electricDesignerElectro Motive DivisionBuilderGeneral Motors DieselOrder numberC-155Serial numberA443–A482ModelEMD B12Build date1953–1956Total produced40SpecificationsConfiguration:​ • UIC(A1A)(A1A)WheelbaseA1A-A1APerformance figuresPower output1,125 hp (839 kW)CareerOperatorsEastern Bengal Railway Bangladesh Railway Bangladesh Railway Class 2000 is the earliest meter-gauge ...

 

Overview of the geography of Mali A map of Mali Location of Mali Mali is a landlocked nation in West Africa, located southwest of Algeria, extending south-west from the southern Sahara Desert through the Sahel to the Sudanian savanna zone. Mali's size is 1,240,192 square kilometers. Desert or semi-desert covers about 65 percent of Mali's total area (1,240,192 square kilometers). The Niger River creates a large and fertile inland delta as it arcs northeast through Mali from Guinea before turni...

1961 novel by L. Sprague de Camp The Dragon of the Ishtar Gate First editionAuthorL. Sprague de CampCover artistCharles McCurryCountryUnited StatesLanguageEnglishGenreHistorical novelPublisherDoubledayPublication date1961Media typePrint (Hardback)Pages429Followed byThe Arrows of Hercules  The Dragon of the Ishtar Gate is a historical novel by American writer L. Sprague de Camp, first published in hardcover by Doubleday in 1961, and in paperback by Lancer Books in 1968. The...

 

Gereja Persekutuan KristenLogo GepekrisPenggolonganProtestanWilayahIndonesiaDidirikanJanuary 1973Terpisah dariCFMU (Chinese Foreign Missionary Union)Jemaat28Situs web resmiwww.gepekris.com Gereja Persekutuan Kristen (disingkat GEPEKRIS) adalah suatu gereja di Indonesia yang pada awalnya didirikan oleh para misionaris dari Tiongkok yang tergabung dalam CFMU (Chinese Foreign Missionary Union). Pada bulan Januari 1973 pelayanan CFMU diganti menjadi Gereja Persekutuan Kristen. Saat ini GEPEKRIS b...

 
Kembali kehalaman sebelumnya