50 `de` parancsparancsok

50 Sed Command Examples



A 'sed' a GNU/Linux hasznos szövegfeldolgozó funkciója. A `sed 'teljes formája a Stream Editor. Sokféle egyszerű és bonyolult szövegfeldolgozási feladat nagyon egyszerűen elvégezhető a `sed` paranccsal. A szövegben vagy fájlban lévő bármely karakterlánc kereshető, cserélhető és törölhető a `sed paranccsal rendelkező reguláris kifejezés használatával. De ez a parancs ideiglenesen végrehajt minden típusú módosítást, és az eredeti fájl tartalma alapértelmezés szerint nem változik. A felhasználó szükség esetén tárolhatja a módosított tartalmat egy másik fájlban. A 'sed' parancs alapvető használatát ebben az oktatóanyagban 50 egyedi példával ismertetjük. Az oktatóprogram elindítása előtt ellenőrizze a 'sed' telepített verzióját az operációs rendszerben a következő parancs futtatásával. Az oktatóanyag a GNU sed alapján készült. Tehát az 'sed' ezen verziójára lesz szükség az oktatóanyagban bemutatott példák gyakorlásához.

$sed --változat

A következő kimenet azt mutatja, hogy a 4.4 -es verzió GNU Sed telepítve van a rendszerben.









Szintaxis:



sed [lehetőségek]...[forgatókönyv] [fájlt]

Ha egyetlen fájlnév sincs megadva a `sed` paranccsal, akkor a szkript a szabványos bemeneti adatokon fog működni. A `sed` szkript minden opció nélkül végrehajtható.





Tartalom :

  1. Alapvető szöveghelyettesítés „sed” használatával
  2. Cserélje ki a szöveg összes példányát a fájl egy adott sorában a „g” opció használatával
  3. Minden sorban csak egy illesztés második előfordulását cserélje ki
  4. Minden sorban csak egyezés utolsó előfordulását cserélje ki
  5. Cserélje le a fájl első egyezését új szöveggel
  6. Cserélje le a fájl utolsó egyezését új szöveggel
  7. A fordított perjel elhagyása a csereparancsokban a keresési és a fájlútvonalak cseréjének kezeléséhez
  8. Cserélje ki az összes fájl teljes elérési útját csak a fájlnév nélküli könyvtárral
  9. Helyettesítsen szöveget, de csak akkor, ha a szövegben más szöveg található
  10. Helyettesítsen szöveget, de csak akkor, ha más szöveg nem található a karakterláncban
  11. Adjon hozzá karakterláncot a megfelelő minta után a „ 1 '
  12. Törölje a megfelelő sorokat
  13. Törölje a megfelelő sort és az egyező sor után 2 sort
  14. Törölje az összes szóközt a szövegsor végén
  15. Töröljön minden olyan sort, amely egyezést tartalmaz kétszer a vonalon
  16. Töröljön minden olyan sort, amelyik egyetlen szóközzel rendelkezik
  17. Töröljön minden nem nyomtatható karaktert
  18. Ha egyezés van a sorban, fűzzön valamit a sor végéhez
  19. Ha egyezés van a sor betét sorában a mérkőzés előtt
  20. Ha a mérkőzés után egyezés van a sorbetét sorban
  21. Ha nincs egyezés, fűzzön valamit a sor végéhez
  22. Ha nincs egyezés, törölje a sort
  23. Ismétlődő egyező szöveg, miután szóközt adott a szöveg után
  24. Cserélje ki a karakterláncok egyikét az új karakterlánccal
  25. Cserélje le az illeszkedő karakterláncot egy új sorokat tartalmazó karakterlánccal
  26. Távolítsa el az új sorokat a fájlból, és illesszen vesszőt minden sor végére
  27. Távolítsa el a vesszőket, és adjon hozzá új sorokat a szöveg több sorra bontásához
  28. Keresse meg a kis- és nagybetűk közötti különbséget, és törölje a sort
  29. Keresse meg a kis- és nagybetűk közötti különbséget, és cserélje ki új szöveggel
  30. Keresse meg a kis- és nagybetűk közötti különbséget, és cserélje ki ugyanazon szöveg nagybetűivel
  31. Keresse meg a kis- és nagybetűk megkülönböztetés nélküli egyezését, és cserélje ki ugyanazon szöveg kisbetűivel
  32. Cserélje ki a szövegben szereplő összes nagybetűt kisbetűvel
  33. Keresse meg a számot a sorban, és fűzze hozzá a pénznem szimbólumot a szám után
  34. Adjon vesszőt a 3 számjegynél hosszabb számokhoz
  35. Cserélje ki a tabulátor karaktereket 4 szóközre
  36. Cserélje le a 4 egymást követő szóközt egy tabulátorra
  37. Vágja le az összes sort az első 80 karakterre
  38. Keressen egy karakterlánc -reguláris kifejezést, és fűzzön hozzá szabványos szöveget
  39. Keressen egy karakterlánc -reguláris kifejezést, majd a talált karakterlánc második példányát
  40. Többsoros `sed` szkriptek futtatása fájlból
  41. Párosítson egy többsoros mintát, és cserélje ki új többsoros szövegre
  42. Cserélje ki a mintának megfelelő két szó sorrendjét
  43. Használjon több sed parancsot a parancssorból
  44. Kombinálja a sedet más parancsokkal
  45. Szúrjon be egy üres sort a fájlba
  46. Törölje az összes alfanumerikus karaktert a fájl minden sorából.
  47. A karakterlánc egyeztetéséhez használja a „&” billentyűt
  48. Szópár váltása
  49. Minden szó első karakterét nagybetűvel kezdje
  50. Nyomtassa ki a fájl sorszámait

1. Alapvető szöveghelyettesítés „sed” használatával

A szöveg bármely része kereshető és cserélhető a 'sed' paranccsal történő keresés és mintacsere használatával. A következő példában az „s” jelzi a keresési és cserefeladatot. A „Bash” szót a szöveg, a Bash Scripting Language keresi, és ha a szó létezik a szövegben, akkor a „Perl” szó váltja fel.



$kidobta 'Bash Scripting Language' | sed 's/Bash/Perl/'

Kimenet:

A „Bash” szó létezik a szövegben. Tehát a kimenet „Perl Scripting Language”.

A `sed` parancs használható a fájltartalom bármely részének helyettesítésére is. Hozzon létre egy szöveges fájlt hétköznap.txt a következő tartalommal.

hétköznap.txt

hétfő
kedd
szerda
csütörtök
péntek
szombat
vasárnap

A következő parancs megkeresi és lecseréli a „Vasárnap” szöveget a „Vasárnap ünnep” szövegre.

$macskahétköznap.txt
$sed 's/vasárnap/vasárnap ünnep/'hétköznap.txt

Kimenet:

A 'vasárnap' létezik a weekday.txt fájlban, és ezt a szót a fenti 'sed' parancs végrehajtása után a 'vasárnap ünnep' szöveg váltja fel.

Menj a tetejére

2. Cserélje ki a szöveg összes példányát a fájl egy adott sorában a „g” opció használatával

A „g” opciót a „sed” parancs használja az egyező minta minden előfordulásának helyettesítésére. Hozzon létre egy szöveges fájlt python.txt a következő tartalommal a „g” opció használatának megismeréséhez. Ez a fájl tartalmazza a szót. 'Piton' többször.

python.txt

A python nagyon népszerű nyelv.
A Python könnyen használható. A Python könnyen megtanulható.
A Python platformok közötti nyelv

A következő parancs helyettesíti a ' Piton 'A fájl második sorában, python.txt . Itt, 'Piton' kétszer fordul elő a második sorban.

$ cat python.txt
$ sed'2 s / Python / perl / g'piton.txt

Kimenet:

A szkript futtatása után a következő kimenet jelenik meg. Itt a „Python” minden előfordulását a második sorban a „Perl” váltja fel.

Menj a tetejére

3. Minden sorban csak egy mérkőzés második előfordulását cserélje ki

Ha egy szó többször szerepel egy fájlban, akkor a szó adott előfordulása minden sorban helyettesíthető a `sed` paranccsal az előfordulás számával. A következő 'sed' parancs helyettesíti a keresési minta második előfordulását a fájl minden sorában, python.txt .

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

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Itt a keresett szöveg: Piton' csak kétszer jelenik meg a második sorban, és helyébe a következő szöveg lép: Perl ’.

Menj a tetejére

4. Az egyes sorokban csak egy mérkőzés utolsó előfordulását cserélje ki

Hozzon létre egy szöveges fájlt lang.txt a következő tartalommal.

lang.txt

Bash programozási nyelv. Python programozási nyelv. Perl programozási nyelv.
Hypertext Markup Language.
Bővíthető jelölőnyelv.

$sed 's/ (.*) Programozás/ 1Scripting/'lang.txt

Menj a tetejére

5. Cserélje le a fájl első egyezését új szöveggel

A következő parancs csak a keresési minta első egyezését helyettesíti, ' Piton 'A szöveg alapján, ‘Perl ’. Itt, '1' a minta első előfordulásának megfeleltetésére szolgál.

$ cat python.txt
$ sed'1 s / Python / perl /'piton.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Itt. a „Python” első előfordulását az első sorban a „perl” váltja fel.

Menj a tetejére

6. Cserélje le a fájl utolsó egyezését új szöveggel

A következő parancs helyettesíti a keresési minta utolsó előfordulását, 'Piton 'A szöveg alapján, ‘Bash’. Itt, '$' szimbólum a minta utolsó előfordulásának egyezésére szolgál.

$ cat python.txt
$ de -e'$ s / Python / Bash /'piton.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

7. A fordított perjel elhagyása a csere parancsokban a keresési és a fájlútvonalak cseréjének kezeléséhez

A kereséshez és cseréhez el kell kerülni a fordított perjelet a fájl elérési útjában. A `sed` következő parancsa fordított perjelet () ad a fájl elérési útjához.

$kidobta /itthon/ubuntu/kód/perl/add.pl| sed 's; /; \ /; g'

Kimenet:

A fájl elérési útja, '/Home/ubuntu/code/perl/add.pl' a `sed` parancs bemeneteként van megadva, és a következő parancs jelenik meg a fenti parancs futtatása után.

Menj a tetejére

8. Cserélje ki az összes fájl teljes elérési útját csak a fájlnév nélküli könyvtárral

A fájlnév a `gombbal könnyen lekérhető a fájl elérési útjából basename ' parancs. A `sed` paranccsal a fájlnév is letölthető a fájl elérési útjából. A következő parancs csak a `echo` parancs által megadott fájlútvonalból viszi le a fájlnevet.

$kidobta '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Itt a fájlnév, myfile.txt ” kimenetként van nyomtatva.

Menj a tetejére

9. Helyettesítsen szöveget, de csak akkor, ha a szövegben más szöveg található

Hozzon létre egy fájlt ' oszt.txt ” a következő tartalommal helyettesíthet bármilyen szöveget más szöveg alapján.

oszt.txt

Az összes hallgató listája:

CSE - gróf
EEE - gróf
Polgári - gróf

A következő `sed` parancsban két csereparancsot használunk. Itt a szöveg: Számol ’Helyébe a 100 a szöveget tartalmazó sorban, ‘CSE 'És a szöveg' Számol' helyére kerül 70 a keresési mintát tartalmazó sorban, ' EEE ” .

$macskaoszt.txt
$sed -És '/CSE/s/Count/100/; /EEE/s/Count/70/; 'oszt.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

10. Helyettesítsen szöveget, de csak akkor, ha más szöveg nem található a karakterláncban

A következő „sed” parancs helyettesíti a „Count” értéket a „CSE” szöveget nem tartalmazó sorban. oszt.txt fájl két sort tartalmaz, amelyek nem tartalmazzák a „CSE” szöveget. Így a ' Számol „A szöveget 80 sor váltja fel két sorban.

$macskaoszt.txt
$sed -én -És '/CSE/! s/Count/80/; 'oszt.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

11. Adja hozzá a karakterláncot a megfelelő minta előtt és után a „ 1” használatával

A 'sed' parancs megfelelő mintáinak sorrendjét ' 1', ' 2' és így tovább jelölik. A következő 'sed' parancs megkeresi a mintát, a 'Bash' -t, és ha a minta megegyezik, akkor a szöveg helyettesítő részében a ' 1' lesz elérhető. Itt a „Bash” szöveget keresik a beviteli szövegben, és egy szöveget adnak hozzá, és egy másik szöveget „ 1” után.

$kidobta 'Bash nyelv' | sed 's/ (Bash )/Learn 1 programozás/'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Itt, ' Tanul' szöveget adunk hozzá „Bash” és ' programozás 'Szöveg a következővel egészül ki:' Bash ”.

Menj a tetejére

12. Törölje a megfelelő sorokat

„D” opciót használjuk a `sed` parancsban, hogy töröljünk minden sort a fájlból. Hozzon létre egy nevű fájlt os.txt és adja hozzá a következő tartalmat a funkció teszteléséhez „D” választási lehetőség.

macska os.txt

ablakok
Linux
Android
TE

A következő `sed` parancs törli ezeket a sorokat os.txt fájlt, amely tartalmazza az „OS” szöveget.

$macskaos.txt
$sed '/A D'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

13. Törölje a megfelelő sort és a 2 sort az egyező sor után

A következő parancs három sort töröl a fájlból os.txt ha a minta, Linux ” található. os.txt tartalmazza a szöveget, 'Linux 'A második sorban. Tehát ez a sor és a következő két sor törlődik.

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

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

14. Törölje az összes szóközt a szöveg sorának végén

Használata [:üres:] osztály használható szóközök és tabulátorok eltávolítására a szövegből vagy bármely fájl tartalmából. A következő parancs eltávolítja a szóközöket a fájl minden sora végén, os.txt.

$macskaos.txt
$sed 's/[[: blank:]]*$ //'os.txt

Kimenet:

os.txt üres sorokat tartalmaz minden sor után, amelyeket a fenti `sed` parancs töröl.

Menj a tetejére

15. Töröljön minden olyan sort, amely kétszer egyezik a vonalon

Hozzon létre egy szöveges fájlt, input.txt a következő tartalommal, és kétszer törölje a fájl azon sorait, amelyek a keresési mintát tartalmazzák.

input.txt

A PHP egy kiszolgálóoldali szkriptnyelv.
A PHP nyílt forráskódú nyelv, a PHP pedig megkülönbözteti a kis- és nagybetűket.
A PHP platformfüggetlen.

A „PHP” szöveg kétszer szerepel a fájl második sorában, input.txt . Ebben a példában két 'sed' parancsot használunk a '' mintát tartalmazó sorok eltávolítására php ' kétszer. Az első 'sed' parancs helyettesíti a 'php' második előfordulását minden sorban ' dl 'És küldje el a kimenetet a második' sed 'parancsba bemenetként. A második 'sed' parancs törli azokat a sorokat, amelyek tartalmazzák a szöveget, ' dl ’.

$macskainput.txt
$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'

Kimenet:

input.txt a fájl két sorban tartalmazza a mintát, 'Php' kétszer. Tehát a következő parancs jelenik meg a fenti parancsok futtatása után.

Menj a tetejére

16. Töröljön minden sort, amelyben csak szóköz van

A példa teszteléséhez válasszon ki minden olyan fájlt, amely üres sorokat tartalmaz a tartalomban. input.txt Az előző példában létrehozott fájl két üres sort tartalmaz, amelyek a következő `sed` paranccsal törölhetők. Itt a „^$” jelzi a fájl üres sorait, input.txt.

$macskainput.txt
$sed '/^$/d'input.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

17. Töröljön minden nem nyomtatható karaktert

A nem nyomtatható karakterek törölhetők bármilyen szövegből, ha a nem nyomtatható karaktereket semmivel helyettesítik. Ebben a példában a [: print:] osztályt használjuk a nem nyomtatható karakterek megismerésére. A „ t” nem nyomtatható karakter, és nem értelmezhető közvetlenül az „echo” paranccsal. Ehhez a t karakter van hozzárendelve a $ fül változóban, amelyet az 'echo' parancs használ. Az 'echo' parancs kimenete a 'sed' parancsban kerül elküldésre, amely eltávolítja a ' t' karaktert a kimenetből.

$fülre= $' t'
$kidobta 'Helló$ tabWorld'
$kidobta 'Helló$ tabWorld' | sed 's/[^[: print:]] // g'

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Az első `echo parancs a tabulátorral nyomtatja a kimenetet, a` sed 'parancs pedig a tabulátor eltávolítása után.

Menj a tetejére

18. Ha egyezés van a sorban, fűzzön valamit a sor végéhez

A következő parancs a „10” -et fűzi hozzá a „Windows” szöveget tartalmazó sor végéhez os.txt fájlt.

$macskaos.txt
$sed ' / Windows / s / $ / 10 /'os.txt

Kimenet:

A parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

19. Ha egyezés van a sorban, akkor szúrjon be egy sort a szöveg elé

A következő 'sed' parancs megkeresi a szöveget, ' A PHP platformfüggetlen ” ban,-ben input.txt korábban létrehozott fájl. Ha a fájl ezt a szöveget bármely sorban tartalmazza, akkor: A PHP értelmezett nyelv ” sor elé kerül.

$macskainput.txt
$sed '/A PHP platformfüggetlen/s/^/A PHP egy értelmezett nyelv. N/'input.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

20. Ha egyezés van a sorban, akkor illesszen be egy sort a sor után

A következő 'sed' parancs megkeresi a szöveget, ' Linux ” az aktában os.txt és ha a szöveg bármely sorban létezik, akkor egy új szöveget, ' Ubuntu 'Beillesztésre kerül a sor után.

$macskaos.txt
$sed 's/Linux/& nUbuntu/'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

21. Ha nincs egyezés, fűzzön valamit a sor végéhez

A következő `sed` parancs megkeresi ezeket a sorokat os.txt amely nem tartalmazza a szöveget, 'Linux' és fűzd hozzá a szöveget: Operációs rendszer 'Minden sor végén. Itt, ' $ A szimbólum azonosítja azt a sort, ahová az új szöveget hozzáfűzi.

$macskaos.txt
$sed '/Linux/! S/$/Operációs rendszer/'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Az os.txt fájlban három sor található, amelyek nem tartalmazzák a szöveget, a „Linux” és a sorok végén hozzáadott új szöveg.

Menj a tetejére

22. Ha nincs egyezés, törölje a sort

Hozzon létre egy nevű fájlt web.txt és adja hozzá a következő tartalmat, és törölje azokat a sorokat, amelyek nem tartalmazzák a megfelelő mintát. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery A következő 'sed' parancs megkeresi és törli azokat a sorokat, amelyek nem tartalmazzák a 'CSS' szöveget. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Kimenet: A fenti parancsok futtatása után a következő kimenet jelenik meg. A fájlban egy sor található, amely tartalmazza a szöveget: „CSE”. Tehát a kimenet csak egy sort tartalmaz.

Menj a tetejére

23. Ismétlődő egyező szöveg, miután szóközt adott a szöveg után

A következő 'sed' parancs megkeresi a 'to' szót a fájlban, python.txt és ha a szó létezik, akkor ugyanazt a szót szóköz hozzáadásával illeszti be a keresőszó után. Itt, '&' szimbólum az ismétlődő szöveg hozzáfűzésére szolgál.

$macskapython.txt
$sed -És 's / to / & to / g'python.txt

Kimenet:

A következő kimenet jelenik meg a parancsok futtatása után. Itt a „to” szót keresi a fájl, python.txt és ez a szó létezik a fájl második sorában. Így, 'nak nek ’Szóköz kerül a megfelelő szöveg után.

Menj a tetejére

24. Cserélje ki a karakterláncok listáját az új karakterlánccal

A példa teszteléséhez két listafájlt kell létrehoznia. Hozzon létre egy szöveges fájlt list1.txt és adja hozzá a következő tartalmat.

macska lista1.txt

1001=>Jafar Ali
1023=>Nir Hossain
1067=>John michel

Hozzon létre egy szöveges fájlt list2.txt és adja hozzá a következő tartalmat.

$ cat list2.txt

1001CSE GPA-3.63
1002CSE GPA-3.24
1023CSE GPA-3.11
1067CSE GPA-3,84

A következő 'sed' parancs illeszkedik a fent látható két szövegfájl első oszlopához, és lecseréli a megfelelő szöveget a fájl harmadik oszlopának értékére list1.txt.

$macskalist1.txt
$macskalist2.txt
$sed ``macskalist1.txt| awk '{print' -e with / '$ 1' / '$ 3' / '}'``<<<'`macska lista2.txt`'

Kimenet:

1001, 1023 és 1067 list1.txt fájl egyezik a list2.txt fájlt, és ezeket az értékeket a list1.txt .

Menj a tetejére

25. Cserélje ki az illesztett karakterláncot egy új sorokat tartalmazó karakterlánccal

A következő parancs beírja az 'echo' parancsot, és megkeresi a szót, 'Piton' a szövegben. Ha a szó szerepel a szövegben, akkor új szöveg, 'Hozzáadott szöveg' új sorral lesz beszúrva. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/Hozzáadott szöveg n/' Kimenet: A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

26. Távolítsa el az új sorokat a fájlból, és illesszen vesszőt minden sor végére

A következő `sed` parancs minden új sort vesszővel helyettesít a fájlban os.txt . Itt, -Val vel opció a sor NULL karakterrel történő elválasztására szolgál.

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

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

27. Távolítsa el a vesszőket, és adjon hozzá új sort a szöveg több sorra osztásához

A következő `sed` parancs a vesszővel elválasztott sort veszi fel az` echo` parancsból bemenetként, és a vesszőt új sorra cseréli.

$kidobta 'Kaniz Fatema, 30., köteg' | sed /,/ n/g '

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. A beviteli szöveg három vesszővel elválasztott adatot tartalmaz, amelyeket új sor helyettesít és három sorban nyomtat.

Menj a tetejére

28. Keresse meg a kis- és nagybetűket nem érzékeny egyezést, és törölje a sort

Az „I” a „sed” parancsban használatos a kis- és nagybetűk megkülönböztetés nélküli egyezéséhez, amely a kis- és nagybetűk figyelmen kívül hagyását jelzi. A következő 'sed' parancs megkeresi a szót tartalmazó sort, 'Linux 'És törölje a sort innen os.txt fájlt.

$macskaos.txt
$sed '/linux/Id'os.txt

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Az os.txt tartalmazza a mintával egyező „Linux” szót, a „linux” a kis- és nagybetűk megkülönböztetés nélküli keresését és törlését.

Menj a tetejére

29. Keresse meg a kis- és nagybetűk közötti különbséget, és cserélje ki új szöveggel

A következő 'sed' parancs átveszi az 'echo' parancs bemenetét, és lecseréli a 'bash' szót a 'PHP' szóra.

$kidobta 'Szeretem a bash programozást' | sed 's/Bash/PHP/i'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Itt a „Bash” szó illeszkedik a szóhoz, a „bash” a kis- és nagybetűk megkülönböztetés nélküli kereséséhez, és helyébe a „PHP” szó lép.

Menj a tetejére

30. Keresse meg a kis- és nagybetűk közötti egyezést, és cserélje ki ugyanazon szöveg nagybetűivel

' U' a 'sed' -ben használják, hogy bármilyen szöveget nagybetűvé alakítsanak át. A következő 'sed' parancs megkeresi a szót, 'Linux ' ban,-ben os.txt fájlt, és ha a szó létezik, akkor a szót minden nagybetűvel helyettesíti.

$macskaos.txt
$sed 's / (linux ) / U 1 / Ig'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Az os.txt fájl „Linux” szó helyébe a „LINUX” szó lép.

Menj a tetejére

31. Keresse meg a kis- és nagybetűk megkülönböztetés nélküli egyezését, és cserélje ki ugyanazon szöveg kisbetűivel

'AZ' a 'sed' -ben használják, hogy bármilyen szöveget kisbetűvé alakítsanak át. A következő 'sed' parancs megkeresi a szót, 'Linux' ban,-ben os.txt fájlt, és helyettesítse a szót minden kisbetűvel.

$macskaos.txt
$sed 's / (linux ) / L 1 / Ig'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. A „Linux” szót itt a „linux” szó váltja fel.

Menj a tetejére

32. Cserélje ki a szöveg összes nagybetűjét kisbetűvel

A következő `sed` parancs megkeresi az összes nagybetűt a os.txt fájlt, és cserélje ki a karaktereket kisbetűvel a „ L” használatával.

$macskaos.txt
$sed 's/ (.*)/ L 1/'os.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

33. Keresse meg a számot a sorban, és fűzzen bármilyen pénznem szimbólumot a szám

Hozzon létre egy nevű fájlt items.txt a következő tartalommal.

items.txt

HDD 100
Monitor 80
Egér 10

A következő `sed` parancs megkeresi a sor minden számát items.txt fájlt, és csatolja a pénznem szimbólumát, a „$” -t minden szám előtt.

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

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Itt minden sor sora elé a „$” szimbólum kerül.

Menj a tetejére

34. Adjon vesszőt a 3 számjegynél hosszabb számokhoz

A következő `sed` parancs egy számot vesz fel az` echo` parancsból, és vesszőt ad hozzá minden jobb oldali számjegyből álló három számjegyből álló csoport után. Itt az „: a” jelzi a címkét, a „ta” pedig a csoportosítási folyamat ismétlésére szolgál.

$kidobta '5098673' | sed -És:nak nek-És 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'

Kimenet:

Az 5098673 számot az 'echo' parancs adja meg, és a 'sed' parancs az 5 098 673 számot úgy generálta, hogy vesszőt adott hozzá minden három számjegyből álló csoporthoz.

Menj a tetejére

35. A tabulátor karakterét 4 szóközre cseréli

A következő `sed` parancs minden tab ( t) karaktert négy szóközre cserél. A „$” szimbólum a „sed” parancsban a tabulátor karakterének megfelelő, a „g” pedig az összes lapkarakter helyettesítésére szolgál.

$kidobta -És „1 t2 t3 ' | sed$'s/ t//g'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

36. 4 egymást követő szóköz karaktert helyettesít tabulátor karakterrel

A következő parancs 4 egymást követő karaktert helyettesít tab ( t) karakterrel.

$kidobta -És '1 2' | sed$'s// t/g'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

37. Vágja le az összes sort az első 80 karakterre

Hozzon létre egy szöveges fájlt in.txt fájlban amely a példa teszteléséhez 80 karakternél hosszabb sorokat tartalmaz.

in.txt fájlban

A PHP egy kiszolgálóoldali szkriptnyelv.
A PHP nyílt forráskódú nyelv, a PHP pedig megkülönbözteti a kis- és nagybetűket. A PHP platformfüggetlen.
A következő `sed` parancs lecsonkítja a sor minden sorát in.txt fájlban fájl 80 karakterből áll.

$macskain.txt fájlban
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt fájlban

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. Az in.txt fájl második sora több mint 80 karaktert tartalmaz, és ez a sor csonka a kimenetben.

Menj a tetejére

38. Keressen egy karakterlánc -reguláris kifejezést, és fűzzön hozzá szabványos szöveget

A következő 'sed' parancs megkeresi a szöveget, ' Helló 'A beviteli szövegben, és fűzze hozzá a szöveget,' János 'A szöveg után.

$kidobta 'Helló, hogy vagy?' | sed 's/ (hello )/ 1 John/'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

39. Keressen karakterlánc -reguláris kifejezést, és fűzzön hozzá egy szöveget a második egyezés után minden sorhoz

A következő 'sed' parancs megkeresi a szöveget, ' PHP 'Minden sorában input.txt és cserélje ki a második egyezést minden sorban a szöveggel, „Új szöveg hozzáadva” .

$macskainput.txt
$sed 's/ (PHP )/ 1 (új szöveg hozzáadva)/2'input.txt

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. A keresett szöveg: PHP ”Kétszer jelenik meg a második és a harmadik sorban input.txt fájlt. Tehát a szöveg: Új szöveg hozzáadva ”Beillesztésre kerül a második és a harmadik sorba.

Menj a tetejére

40. Többsoros `sed` szkriptek futtatása fájlból

Több 'sed' parancsfájl tárolható egy fájlban, és az összes parancsfájl együtt végrehajtható a 'sed' parancs futtatásával. Hozzon létre egy nevű fájlt ‘Sedcmd 'És adja hozzá a következő tartalmat. Itt két 'sed' szkript kerül hozzáadásra a fájlba. Egy szkript helyettesíti a szöveget: PHP ’Által 'ÁSPISKÍGYÓ 'Egy másik szkript helyettesíti a szöveget,' független 'A szöveg alapján' függő ’.

sedcmd

s/PHP/ÁSPISKÍGYÓ/
s/független/függő/

A következő 'sed' parancs az összes 'PHP' és 'független' szöveget 'ASP' és 'függő' helyettesíti. Itt az '-f' opciót használjuk a 'sed' parancsban a 'sed' parancsfájl végrehajtásához a fájlból.

$macskasedcmd
$sed -fsedcmd input.txt

Kimenet:

A következő kimenet jelenik meg a parancsok futtatása után.

Menj a tetejére

41. Párosítson egy többsoros mintát, és cserélje ki új, többsoros szövegre

A következő 'sed' parancs megkeresi a többsoros szöveget, „Linux nAndroid” és ha a minta megegyezik, akkor a megfelelő sorokat a többsoros szöveg váltja fel, „Ubuntu nAndroid Lollipop ’. Itt a P és a D többsoros feldolgozásra szolgál.

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

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

42. Cserélje ki a szövegben szereplő két szó sorrendjét, amelyek megfelelnek a mintának

A következő `sed` parancs két szó bevitelét veszi fel az` echo` parancsból, és lecseréli e szavak sorrendjét.

$kidobta 'perl python' | sed -És 's/ ([^]*)* ([^]*)/ 2 1/'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

43. Futtasson több `sed` parancsot a parancssorból

Az '-e' opciót a 'sed' parancsban több 'sed' parancsfájl futtatására használják a parancssorból. A következő 'sed' parancs szöveget vesz az 'echo' parancs bemenetéből, és lecseréli a ' Ubuntu 'Által' Kubuntu 'És' több száz 'Által' Fedora ’.

$kidobta 'Ubuntu Centos Debian' | sed -És 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Itt az „Ubuntu” és a „Centos” helyébe „Kubuntu” és „Fedora” lép.

Menj a tetejére

44. Kombinálja az 'sed' -t más parancsokkal

A következő parancs egyesíti a `sed` parancsot a` cat` paranccsal. Az első `sed` parancs innen érkezik os.txt fájlt, és küldje el a parancs kimenetét a második „sed” parancsnak, miután a „Linux” szöveget „Fedora” -ra cserélte. A második 'sed' parancs a 'Windows' szöveget 'Windows 10' -re cseréli.

$macskaos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

45. Szúrjon be egy üres sort a fájlba

Hozzon létre egy nevű fájlt stdlist a következő tartalommal.

stdlist

#Azonosító #név
[101] -De
[102] -Neha

A „G” opció üres sor beszúrására szolgál a fájlban. A következő `sed` parancs üres sorokat illeszt be a sor minden sorába stdlist fájlt.

$macskastdlist
$sedG stdlist

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg. A fájl minden sora után üres sor kerül beszúrásra.

Menj a tetejére

46. ​​Cserélje ki az összes alfanumerikus karaktert szóközzel a fájl minden sorában.

A következő parancs az összes alfanumerikus karaktert szóközzel helyettesíti stdlist fájlt.

$macskastdlist
$ de 's / [A-Za-z0-9] // g'stdlist

Kimenet:

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Menj a tetejére

47. Használja az „&” billentyűt az egyező karakterlánc kinyomtatásához

A következő parancs megkeresi az „L” betűvel kezdődő szót, és a szöveget kiegészítéssel helyettesíti 'Az egyező karakterlánc - „Az egyező szóval a„ & ”szimbólum használatával. Itt a „p” a módosított szöveg nyomtatására szolgál.

$sed -n 's/^L/Egyező karakterlánc - &/p'os.txt

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg.

Menj a tetejére

48. Váltás egy szópár között egy fájlban

Hozzon létre egy szöveges fájlt tanfolyam.txt a következő tartalommal, amely minden sorban tartalmazza a szópárt.

tanfolyam.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

A következő parancs megváltoztatja a fájl páros szavát, tanfolyam.txt .

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

Kimenet:

A következő kimenet jelenik meg az egyes sorok szópárjának cseréje után.

Menj a tetejére

49. Írja nagybetűvel minden szó első karakterét

A következő `sed` parancs átveszi a bemeneti szöveget az` echo` parancsból, és minden szó első karakterét nagybetűvé alakítja át.

$kidobta 'Szeretem a bash programozást' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. A bemeneti szöveg, szeretem a bash programozást az első szó nagybetűje után I Like Bash Programming néven nyomtatja ki.

Menj a tetejére

50. Nyomtassa ki a fájl sorszámait

A '=' szimbólum a 'sed' paranccsal nyomtatja ki a sorszámot a fájl minden sora előtt. A következő parancs kinyomtatja a tartalmát os.txt fájl sorszámmal.

$sed '='os.txt

Kimenet:

A fenti parancs futtatása után a következő kimenet jelenik meg. Négy sor van benne os.txt fájlt. Tehát a sorszám kinyomtatásra kerül a fájl minden sora előtt.

Menj a tetejére

Következtetés:

Ebben az oktatóanyagban a `sed` parancs különböző felhasználási módjait nagyon egyszerű példákkal ismertetjük. Az összes itt említett 'sed' szkript kimenete ideiglenesen generálódik, és az eredeti fájl tartalma változatlan maradt. De ha akarja, módosíthatja az eredeti fájlt a `sed parancs –i vagy –in-opciójával. Ha Ön új Linux -felhasználó, és szeretné megtanulni a `sed` parancs alapvető használatát a különböző típusú karakterlánc -kezelési feladatok végrehajtásához, akkor ez az oktatóanyag segít. Reméljük, hogy miután elolvasta ezt az oktatóanyagot, minden felhasználó tisztában lesz a `sed` parancs funkcióival.

Gyakran Ismételt Kérdések

Mire használható a sed parancs?

A sed parancsnak számos különböző felhasználási módja van. Ennek ellenére a fő használat a szavak cseréje egy fájlban, vagy megkeresése és cseréje.

A sed nagyszerű tulajdonsága, hogy kereshet egy szót a fájlban, és kicserélheti, de soha nem is kell megnyitnia a fájlt - a sed csak mindent megtesz az Ön számára!

Ezenkívül törlésre is használható. Mindössze annyit kell tennie, hogy beírja a megtalálni, kicserélni vagy törölni kívánt szót a sed -be, és ez megjeleníti az Ön számára - ezután dönthet úgy, hogy lecseréli ezt a szót, vagy törli a szó összes nyomát a fájlból.

A sed egy fantasztikus eszköz arra, hogy lecserélhessen olyan dolgokat, mint az IP -címek és bármi, ami nagyon érzékeny, és amelyet egyébként nem szeretne fájlba helyezni. A sed minden szoftvermérnök számára kötelező!

Mi az S és G az sed parancsban?

A legegyszerűbb kifejezésekkel élve a S -ben használható „S” függvény egyszerűen „helyettesítőt” jelent. Az S beírása után bármit lecserélhet vagy helyettesíthet - csak az S beírása helyettesíti csak a szó első előfordulását egy sorban.

Ezért ha van egy mondata vagy sora, amely többször említi, az S függvény nem ideális, mivel csak az első előfordulást helyettesíti. Megadhat egy mintát, hogy az S két alkalommal is helyettesítse a szavakat.

Ha megadja a G parancsot a sed parancs végén, akkor globális cserét hajt végre (ezt jelenti a G). Ezt szem előtt tartva, ha megadja a G -t, az a választott szó minden előfordulását helyettesíti, nem pedig az első előfordulást, amelyet az S tesz.

Hogyan futtathatok egy sed szkriptet?

A sed parancsfájlt számos módon futtathatja, de a leggyakoribb a parancssorban található. Itt csak megadhatja a sed -et és a parancsot használni kívánt fájlt.

Ez lehetővé teszi a sed használatát az adott fájlban, lehetővé téve a keresést, törlést és szükség szerinti helyettesítést.

Használhatod shell parancsfájlban is, és így átadhatsz a szkriptnek mindent, amit akarsz, és lefuttatja a find and cserét. Ez akkor hasznos, ha nem akarunk nagyon érzékeny adatokat megadni egy szkriptben, ezért ehelyett megadhatjuk azokat változóként

Ne feledje, hogy ez természetesen csak Linux rendszeren érhető el, ezért a sed parancsfájl futtatásához meg kell győződnie arról, hogy rendelkezik Linux parancssorral.