Otázka: Mohu kombinovat více příkazů sed? Mohu zkombinovat dva příkazy sed a provést je jako jeden příkaz sed?
Odpověď: V našich předchozích článcích jsme se naučili sed pomocí jednotlivých příkazů – tisk, mazání, nahrazení a zápis do souboru.
V tomto článku se podíváme na to, jak kombinovat více příkazů sed pomocí volby -e, jak je uvedeno níže.
Syntax: #sed -e 'command' -e 'command' filename
Poznámka: Volba -e je volitelná pro sed s jedním příkazem. sed provede každou sadu příkazů při zpracování vstupu z vyrovnávací paměti vzoru.
Nejprve vytvořte soubor geekstuff.txt, který bude použit ve všech níže uvedených příkladech.
# cat thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
1.Vymažte 4. a 2. řádek ze vstupu
Tento příklad sed odstraní 4. a 2. řádek ze souboru thegeekstuff.txt. Pomocí volby „-e“ můžete zadat libovolný počet příkazů pomocí sed.
$ sed -e '4d' -e '2d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 3. Hardware 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
2. Vytiskněte řádky, které odpovídají vzoru1 a řádky odpovídají vzoru2
Tento příklad sed vytiskne všechny řádky, které odpovídají vzoru „Storage“ nebo „Software“.
$ sed -n -e '/Software/p' -e '/Storage/p' thegeekstuff.txt 5. Storage 9. Software Development
3. Odstraňte první, poslední a všechny prázdné řádky ze vstupu
Tento příklad sed odstraní první řádek, poslední řádek a všechny prázdné řádky ze vstupního souboru.
$ sed -e '1d' -e '$d' -e '/^$/d' thegeekstuff.txt 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development