Inhaltsverzeichnis
Einführung" >Einführung
sed verwendet Parameter
In Zeileneinheiten hinzufügen/löschen
Einfach die 2. Zeile löschen
So löschen Sie die dritte bis letzte Zeile
Nach der zweiten Zeile (d. h. fügen Sie sie zur dritten hinzu). Zeile ) plus die Worte „Neuer Zeilentext?“!
ersetzen Sie den Inhalt der Zeilen 2-5 durch „Was ist mit“. „Keine 2-5 Nummer“?
Nur ​​die Zeilen 5-7 in der Datei /etc/passwd auflisten
Daten suchen und anzeigen
Suchen Sie /etc/passwd nach Zeilen mit dem Root-Schlüsselwort " >Suchen Sie /etc/passwd nach Zeilen mit dem Root-Schlüsselwort
Daten suchen und löschen
Befehle für Daten suchen und ausführen
Daten suchen und ersetzen
将 IP 前面的部分予以删除
将 IP 后面的部分予以删除
多点编辑
直接修改文件内容(危险动作)
Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Ausführliche Erläuterung der Beispielcodefreigabe für den Befehl sed unter Linux

Ausführliche Erläuterung der Beispielcodefreigabe für den Befehl sed unter Linux

Jun 07, 2017 am 10:26 AM

Einführung

sed ist ein Online-Editor, der Inhalte Zeile für Zeile verarbeitet. Während der Verarbeitung wird die aktuell verarbeitete Zeile in einem temporären Puffer gespeichert, der als „Musterraum“ bezeichnet wird. Anschließend wird der Befehl sed verwendet, um den Inhalt des Puffers zu verarbeiten. Nach Abschluss der Verarbeitung wird der Inhalt des Puffers an gesendet Bildschirm. Verarbeiten Sie dann die nächste Zeile und wiederholen Sie den Vorgang bis zum Ende der Datei. Der Dateiinhalt wird nicht geändert, es sei denn, Sie verwenden eine Umleitung zum Speichern der Ausgabe. Sed wird hauptsächlich zum automatischen Bearbeiten einer oder mehrerer Dateien verwendet.

sed verwendet Parameter

[root@www ~]# sed [-nefr] [动作]
Nach dem Login kopieren

Optionen und Parameter:

-n: Silent-Modus verwenden. Bei normaler sed-Nutzung werden normalerweise alle von STDIN kommenden Daten im Terminal aufgelistet. Wenn jedoch der Parameter -n hinzugefügt wird, werden nur die von sed speziell verarbeiteten Zeilen (oder Aktionen) aufgelistet.

-e: Sed-Aktionen direkt im Befehlszeilenmodus bearbeiten;

-f: Sed-Aktionen direkt in eine Datei schreiben, -f Datei Name, den Sie ausführen können sed-Aktion im Dateinamen;

-r: sed-Aktion unterstützt erweiterte reguläre Notationssyntax. (Die Standardeinstellung ist die grundlegende reguläre Notationssyntax)

-i: Ändern Sie den Inhalt der gelesenen Datei direkt, anstatt ihn an das Terminal auszugeben.

Aktionsbeschreibung: [n1[,n2]]Funktion

n1, n2: dürfen nicht vorhanden sein, stellen im Allgemeinen „Wählen Sie die Anzahl der Zeilen für die Aktion“ dar, z. B. wenn meine Die Aktion muss zwischen 10 und 20 Zeilen ausgeführt werden, dann 『10,20[AktionVerhalten]』

Funktion:

a:neu , Auf a können Zeichenfolgen folgen, und diese Zeichenfolgen werden in einer neuen Zeile (der aktuellen nächsten Zeile) angezeigt. ~

c: Stattdessen können auf c Zeichenfolgen folgen, und diese Zeichenfolgen können die Zeilen zwischen n1 und ersetzen n2!

d: Löschen, da es sich um eine Löschung handelt, daher folgt auf d normalerweise kein Dong Dong;

i: Einfügen, auf i kann eine Zeichenfolge folgen, und Diese Zeichenfolgen werden in einer neuen Zeile (der aktuellen vorherigen Zeile) angezeigt.

p: Drucken, d. h. ausgewählte Daten ausdrucken. Normalerweise wird p zusammen mit dem Parameter sed -n~

s: replacement ausgeführt, Sie können die Ersetzungsarbeit direkt durchführen! Normalerweise kann diese Aktion mit einer regulären Notation gepaart werden! Zum Beispiel 1,20s/alt/neu/g Das ist alles!

In Zeileneinheiten hinzufügen/löschen

Listen Sie den Inhalt von /etc/passwd auf und drucken Sie die Zeilennummer aus. Löschen Sie gleichzeitig die Zeilen 2 bis 5!

[root@www ~]# nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(后面省略).....
Nach dem Login kopieren

Die Aktion von sed ist '2,5d', d ist Löschung! Da er die Zeilen 2-5 gelöscht hat, enthalten die angezeigten Daten die Zeilen 2-5 nicht ~ Bitte beachten Sie außerdem, dass Sie ursprünglich sed -e hätten ausgeben sollen, es funktioniert jedoch ohne -e! Gleichzeitig ist auch zu beachten, dass die auf sed folgenden Aktionen in zwei einfache Anführungszeichen gesetzt werden müssen ''!

Einfach die 2. Zeile löschen

nl /etc/passwd | sed '2d'
Nach dem Login kopieren

So löschen Sie die dritte bis letzte Zeile

nl /etc/passwd | sed '3,$d'
Nach dem Login kopieren

Nach der zweiten Zeile (d. h. fügen Sie sie zur dritten hinzu). Zeile ) plus die Worte „Neuer Zeilentext?“!

[root@www ~]# nl /etc/passwd | sed '2a new line text'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
new line text
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....
Nach dem Login kopieren

Wenn Sie dann ersetzen und in Zeileneinheiten vor der zweiten Zeile anzeigen möchten

nl /etc/passwd | sed '2i new line text'
Nach dem Login kopieren

ersetzen Sie den Inhalt der Zeilen 2-5 durch „Was ist mit“. „Keine 2-5 Nummer“?

[root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number'
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync
.....(后面省略).....
Nach dem Login kopieren

Mit dieser Methode können wir die gesamte Datenzeile ersetzen!

Nur ​​die Zeilen 5-7 in der Datei /etc/passwd auflisten

[root@www ~]# nl /etc/passwd | sed -n '5,7p'
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
Nach dem Login kopieren

Sie können die zeilenweise Anzeigefunktion von sed verwenden, um den Inhalt einer bestimmten Datei aufzulisten. Bestimmt Zeilennummern werden zur Anzeige ausgewählt.

Daten suchen und anzeigen

Suchen Sie /etc/passwd nach Zeilen mit dem Root-Schlüsselwort

nl /etc/passwd | sed '/root/p'
1  root:x:0:0:root:/root:/bin/bash
1  root:x:0:0:root:/root:/bin/bash
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
4  sys:x:3:3:sys:/dev:/bin/sh
5  sync:x:4:65534:sync:/bin:/bin/sync
....下面忽略
Nach dem Login kopieren

Wenn Root gefunden wird, außer allen Zeilen ausgeben , werden auch passende Zeilen ausgegeben.

Bei Verwendung von -n werden nur die Zeilen gedruckt, die die Vorlage enthalten.

nl /etc/passwd | sed -n '/root/p'
1  root:x:0:0:root:/root:/bin/bash
Nach dem Login kopieren

Daten suchen und löschen

Alle Zeilen löschen, die root in /etc/passwd enthalten, und andere Zeilen ausgeben

nl /etc/passwd | sed  '/root/d'
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
....下面忽略
#第一行的匹配root已经删除了
Nach dem Login kopieren

Befehle für Daten suchen und ausführen

Nachdem Sie die Zeile gefunden haben, die dem Muster Eastern entspricht,

durchsuchen Sie /etc/passwd, suchen Sie die Zeile, die root entspricht, und führen Sie eine Reihe von Befehlen in geschweiften Klammern aus, wobei jeder Befehl durch ein Semikolon getrennt ist. Ersetzen Sie hier bash durch blueshell und geben Sie dann diese Zeile aus:

 nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
 1  root:x:0:0:root:/root:/bin/blueshell
Nach dem Login kopieren

Wenn Sie nur das erste Bash-Schlüsselwort von /etc/passwd durch blueshell ersetzen, exit

nl /etc/passwd | sed -n '/bash/{s/bash/blueshell/;p;q}'    
1  root:x:0:0:root:/root:/bin/blueshell
Nach dem Login kopieren

Das letzte Q dient zum Beenden.

Daten suchen und ersetzen

Neben dem gesamten Zeilenverarbeitungsmodus kann sed auch Teildaten mithilfe von Zeileneinheiten suchen und ersetzen. Grundsätzlich sind die Suchvorgänge und Ersetzungen von sed denen von vi ziemlich ähnlich! Es sieht ungefähr so ​​aus:

sed 's/string to be replacement/new string/g'

Beobachten Sie zunächst die Originalinformationen und verwenden Sie /sbin/if config Abfrage IP

[root@www ~]# /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
.....(以下省略).....
Nach dem Login kopieren

本机的ip是192.168.1.100。

将 IP 前面的部分予以删除

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
Nach dem Login kopieren

接下来则是删除后续的部分,亦即: 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

将 IP 后面的部分予以删除

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'
192.168.1.100
Nach dem Login kopieren

多点编辑

一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell

nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'

1 root:x:0:0:root:/root:/bin/blueshell

2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh

-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。

直接修改文件内容(危险动作)

sed 可以直接修改文件的内容,不必使用管道命令或数据流重导向! 不过,由於这个动作会直接修改到原始的文件,所以请你千万不要随便拿系统配置来测试! 我们还是使用下载的 regular_express.txt 文件来测试看看吧!

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !

[root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt
Nach dem Login kopieren

利用 sed 直接在 regular_express.txt 最后一行加入『# This is a test』

[root@www ~]# sed -i '$a # This is a test' regular_express.txt
Nach dem Login kopieren

由于 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增『# This is a test』!

sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Beispielcodefreigabe für den Befehl sed unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen CentOS und Ubuntu Unterschied zwischen CentOS und Ubuntu Apr 14, 2025 pm 09:09 PM

Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

So installieren Sie CentOs So installieren Sie CentOs Apr 14, 2025 pm 09:03 PM

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

CentOS stoppt die Wartung 2024 CentOS stoppt die Wartung 2024 Apr 14, 2025 pm 08:39 PM

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Wie man in CentOS fester Festplatten montiert Wie man in CentOS fester Festplatten montiert Apr 14, 2025 pm 08:15 PM

CentOS -Festplattenhalterung ist in die folgenden Schritte unterteilt: Bestimmen Sie den Namen der Festplattengeräte (/dev/sdx); Erstellen Sie einen Mountspunkt (es wird empfohlen, /mnt /newDisk zu verwenden). Führen Sie den Befehl montage (mont /dev /sdx1 /mnt /newdisk) aus; Bearbeiten Sie die Datei /etc /fstab, um eine permanente Konfiguration des Montings hinzuzufügen. Verwenden Sie den Befehl uMount, um das Gerät zu deinstallieren, um sicherzustellen, dass kein Prozess das Gerät verwendet.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

CentOS 'Wahl nach der Beendigung der Wartung CentOS 'Wahl nach der Beendigung der Wartung Apr 14, 2025 pm 08:51 PM

CentOS wurde eingestellt, Alternativen umfassen: 1. Rocky Linux (beste Kompatibilität); 2. Almalinux (kompatibel mit CentOS); 3. Ubuntu Server (Konfiguration erforderlich); 4. Red Hat Enterprise Linux (kommerzielle Version, bezahlte Lizenz); 5. Oracle Linux (kompatibel mit CentOS und RHEL). Bei der Migration sind Überlegungen: Kompatibilität, Verfügbarkeit, Unterstützung, Kosten und Unterstützung in der Gemeinde.

See all articles