Editarea fișierelor text și a ieșirii terminalului este o sarcină de zi cu zi pentru cei care administrează mașini Linux. Utilitarele din linia de comandă, cum ar fi sed, permit utilizatorului să modifice și să schimbe conținutul unui fișier text chiar din fereastra terminalului.
În acest articol, vom discuta detaliat comanda sed, împreună cu câteva exemple esențiale care demonstrează puterea utilitarului sed în Linux.
Ce este comanda sed?
Comanda sed, care este un acronim pentru Editor de flux , este un instrument de linie de comandă care permite utilizatorilor Linux să efectueze operațiuni bazate pe text pe fișiere și ieșiri de terminal. Utilizând sed, utilizatorii pot găsi și înlocui anumite cuvinte într-un text, pot afișa o anumită secțiune a rezultatului și pot edita fișiere text fără a le deschide.
Cele trei operații de bază acceptate de comanda sed sunt:
- Inserare
- Ștergere
- Înlocuire (Găsiți și înlocuiți)
Utilizatorii avansați pot implementa, de asemenea, expresii regulate cu comanda sed pentru a edita fluxurile de text mai eficient.
Sintaxa de bază a comenzii este:
sed [options] [pattern] [filepath]
...Unde Opțiuni sunt diferitele funcționalități ale comenzii, model este expresia regulată sau scriptul pe care doriți să îl potriviți și filepath este calea către fișierul text care conține textul.
cum să ștergeți clipboard-ul pe Android
10 Exemple de comandă Linux sed
Dacă intenționați să deveniți un utilizator obișnuit de Linux, știind cum să editați fișiere, să căutați și să înlocuiți anumite cuvinte și să filtrați ieșirea terminalului, vă poate fi util. Această secțiune acoperă câteva exemple de comandă sed, care vă vor transforma cu siguranță într-un utilizator cu putere Linux.
Vom folosi următorul fișier text pentru demonstrare în postare.
This is a demo text file.
It is an amazing file that will help us all.
The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.
1. Vizualizați o gamă de linii
Comenzile Linux, cum ar fi capul și coada, produc primele sau ultimele zece rânduri ale unui fișier text. Dar dacă doriți să obțineți conținutul între două linii specifice dintr-un fișier? În astfel de situații, comanda sed ar putea fi utilă.
Pentru a afișa conținutul între liniile 3 și 5 ale fișierului textfile.txt :
sed -n '3,5p' textfile.txt
The -n pavilion împiedică sed să afișeze spațiul modelului la sfârșitul fiecărui ciclu. Puteți utiliza, de asemenea --Liniște și --tăcut opțiuni în loc de -n . The p argumentul reprezintă imprimare și este folosit pentru a afișa utilizatorului liniile potrivite.
Executarea comenzii menționate mai sus pe fișierul de exemplu produce următoarea ieșire.
The sed command is also great for stream editing.
Want to learn how to use the command?
This is another line in the file.
Pentru a afișa întregul conținut al fișierului, cu excepția intervalului specificat, utilizați d steag în loc de p în comandă:
sed '3,5d' textfile.txt
The d flag șterge șirurile potrivite din ieșire și afișează restul conținutului.
This is a demo text file.
It is an amazing file that will help us all.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.
2. Afișați linii non-consecutive
Pentru a imprima linii non-consecutive între mai multe zone din fișier:
sed -n -e '1,2p' -e '5,6p' textfile.txt
Ieșire:
This is a demo text file.
It is an amazing file that will help us all.
This is another line in the file.
This is the third general line in the file.
The -Și steagul ajută executând multiple acțiuni folosind o singură comandă.
3. Introduceți spațiul între linii
Dacă din orice motiv doriți să inserați linii goale între fiecare linie într-un fișier text, utilizați G argument cu comanda sed implicită.
cum se face o instalare Windows 10 USB
sed G textfile.txt
Pentru a insera mai multe linii goale în ieșire, treceți mai multe G argumente separate de punct şi virgulă ( ; ) caracter.
sed 'G;G' textfile.txt
4. Înlocuiți un cuvânt într-un fișier text
Dacă doriți să înlocuiți fiecare apariție a unui anumit cuvânt cu un alt cuvânt, utilizați s și g argumente cu comanda. Sintaxa de bază pentru înlocuirea cuvintelor folosind comanda sed este:
sed s/originalword/replaceword/g filename
Folosind sintaxa menționată mai sus, puteți înlocui cuvântul uimitor cu super în dosar textfile.txt :
sed s/amazing/super/g textfile.txt
The s argumentul denotă substituţie si g comanda este utilizată pentru a înlocui conținutul potrivit cu conținutul de înlocuire specificat.
Pentru a înlocui a doua apariție a cuvântului cu sed, treceți un număr către g argument. În acest caz:
sed s/amazing/super/g2 textfile.txt
Dacă doriți să ignorați majusculele cu caractere în timp ce înlocuiți cuvinte, utilizați da in loc de g , Unde eu înseamnă ignora caz.
sed s/Amazing/super/gi textfile.txt
Legate de: Folosești Vi? Iată cum se deschide un fișier apoi se salvează și se renunță
5. Înlocuiește cuvintele din interiorul unei game
De asemenea, puteți înlocui cuvinte dintr-un anumit interval.
sed '2,5s/amazing/super/g' textfile.txt
6. Efectuați înlocuiri multiple simultan
Dacă doriți să efectuați două sau mai multe înlocuiri simultan, separați comenzile cu punct şi virgulă ( ; ) caracter.
sed 's/amazing/super/g;s/command/utility/gi' textfile.txt
Sistemul va afișa următoarea ieșire.
This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is a orange.
7. Înlocuiți cuvintele numai dacă se găsește o potrivire
De asemenea, puteți utiliza comanda sed pentru a înlocui un cuvânt numai dacă o potrivire dată se găsește în linie. De exemplu, pentru a înlocui cuvântul la cu un dacă cuvântul portocale este prezent în linie:
sed -e '/orange/ s/a/an/g' textfile.txt
Emiterea comenzii menționate mai sus va genera:
This is a demo text file.
It is an super file that will help us all.
The sed utility is also great for stream editing.
Want to learn how to use the utility?
This is another line in the file.
This is the third general line in the file.
This file is named as textfile.
This is a apple.
This is an orange.
Rețineți că cuvântul la in linie Acesta este un măr nu a fost înlocuit deoarece sistemul nu a găsit cuvântul portocale în ea.
8. Înlocuiți cuvintele folosind expresii regulate
Pentru cei care știu să utilizeze expresii regulate, efectuarea operațiilor pe șiruri folosind comanda sed devine mult mai ușoară. Puteți implementa expresii regulate pentru a spori puterea comenzii.
Pentru a înlocui toate aparițiile cuvântului Uimitor sau uimitor cu super :
sed -e 's/[Aa]mazing/super/g' textfile.txt
În mod similar, puteți utiliza și expresii regulate avansate pentru a executa operațiuni specifice folosind comanda sed.
9. Pipe sed cu alte comenzi
Puteți lanța sed și cu alte comenzi Linux. De exemplu, puteți conecta lspci comanda cu sed pentru a adăuga spații goale între linii în ieșire.
lspci | sed G
Pentru a înlocui cuvinte specifice în ieșirea din spectacol de traseu ip comanda:
ip route show | sed s/src/source/g
Comanda menționată mai sus înlocuiește cuvântul sursă în locul cuvântului original src .
Legate de: Cum se folosește comanda Găsiți pentru a căuta fișiere în Linux
10. Editați și faceți backup pentru fișierul original
Când lucrați cu fișiere de sistem, este importantă copierea de rezervă a fișierului original în timp ce efectuați modificări. Acest lucru vă va ajuta să reveniți la modificări în cazul în care se sparge ceva.
Pentru a face o copie de siguranță a fișierului original utilizând sed, utilizați fișierul -i steag în comandă.
jocuri multiplayer pentru iPhone și Android
sed -i'.backup' 's/amazing/super/g' textfile.txt
Un nou fișier va fi creat cu numele textfile.txt.backup . Puteți verifica dacă cele două fișiere sunt diferite folosind dif comanda.
diff textfile.txt textfile.txt.backup
Editarea șirurilor în Linux Cu sed
Uneori, în timp ce lucrați cu fișiere text pe terminal, formatarea și editarea rezultatului pentru o mai bună lizibilitate devine o necesitate. Sed și awk sunt utilitare de linie de comandă în Linux care permit utilizatorului să lucreze eficient cu fișiere text împărțind datele în linii separate.
Mulți utilizatori au dificultăți în memorarea argumentelor și semnalizărilor comenzii sed, deoarece există o mulțime dintre acestea care sunt disponibile pentru utilizare. Știind cum să obțineți manuale de linie de comandă pentru orice comandă Linux vă va ajuta să ieșiți cu ușurință din astfel de situații.
Acțiune Acțiune Tweet E-mail 7 moduri de a obține ajutor pentru linia de comandă pe LinuxToate comenzile esențiale pentru a afla despre comenzile Linux din linia de comandă
Citiți în continuare Subiecte asemănătoare- Linux
- Editor de text
- Terminal
- Prompt de comandă
Deepesh este Junior Editor pentru Linux la MUO. El scrie ghiduri informaționale pe Linux, cu scopul de a oferi o experiență fericită tuturor noilor veniți. Nu sunt sigur de filme, dar dacă vrei să vorbești despre tehnologie, el este tipul tău. În timpul liber, îl poți găsi citind cărți, ascultând diferite genuri muzicale sau cântând la chitară.
Mai multe de la Deepesh SharmaAboneaza-te la newsletter-ul nostru
Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Faceți clic aici pentru a vă abona