So löschen Sie bestimmte Zeilen einer Datei unter Linux

青灯夜游
Freigeben: 2022-07-19 18:53:31
Original
19544 Leute haben es durchsucht

Unter Linux können Sie den Befehl sed verwenden, um bestimmte Zeilen einer angegebenen Datei zu löschen. Führen Sie die Anweisung „sed 'M,Nd' Dateiname“ aus, um den Inhalt aufeinanderfolgender Zeilen von M bis N zu löschen. Führen Sie „sed 'N1d“ aus Die Anweisung „;N2d; N3d;$d' Dateiname“ kann den Inhalt der unterbrochenen Zeilen N1, N2 und N3 löschen. Führen Sie die Anweisung „sed '/spezifisches Zeichen/d' Dateiname“ aus, um Zeilen zu löschen, die bestimmte Zeichen enthalten. Führen Sie „ Die Anweisung „sed '/ ^Spezifisches Zeichen/d' Dateiname“ kann Zeilen löschen, die mit einem bestimmten Zeichen beginnen.

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Unter Linux können Sie den Befehl sed verwenden, um bestimmte Zeilen einer bestimmten Datei zu löschen.

sed ist die Abkürzung für Stream Editor. Es wird für die grundlegende Textkonvertierung in Linux verwendet und ist ein wichtiger Befehl für Dateioperationen. Daher können wir ihn auch zum Löschen von Text verwenden.

Im Folgenden finden Sie einige Anwendungsbeispiele für sed-Befehle, die die meisten Verwendungsszenarien abdecken. Sie helfen Ihnen, den sed-Befehl von flach bis tief zu erlernen, sodass Sie bestimmte Dateizeilen einfach und effizient löschen können.

Zuerst bereiten wir eine Demodatei sed-demo.txt vor und schauen uns den Dateiinhalt an

cat sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Dann können wir mit dem Befehl sed experimentieren.

1. Eine bestimmte Zeile löschen

Zunächst löschen wir eine bestimmte Zeile, z. B. die erste Zeile und die letzte Zeile, die eigentlich die N-te Zeile ist.

Befehlsformat zum Löschen der N-ten Zeile:

sed 'Nd' file
Nach dem Login kopieren

Versuchen wir, die erste Zeile zu löschen:

sed '1d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Sehr einfach, oder? Hier gibt es keine große Erklärung. Wenn Sie den Inhalt welcher Zeile löschen möchten, müssen Sie nur 1 im Befehl ersetzen und es ist in Ordnung.

Dann stellt sich die Frage: Welche Zahl wird verwendet, um die letzte Zeile darzustellen? Hier ist ein kleiner Tipp für Sie: Sie können das Dollarzeichen $ verwenden, um das Ende darzustellen. Der Befehl zum Löschen der letzten Zeile kann also folgendermaßen geschrieben werden:

sed '$d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

2 Bestimmte Zeilen löschen

Der Befehl sed kann aufeinanderfolgende oder diskontinuierliche Zeileninhalte löschen.

Aufeinanderfolgende Zeilen löschen, zum Beispiel Zeilen von 5 bis 7 löschen:

sed '5,7d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Nicht aufeinanderfolgende Zeilen löschen, z. B. die 1., 5., 9. und letzte Zeile löschen:

sed '1d;5d;9d;$d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Auch , es kann auch mit logischem NOT! verwendet werden, z. B. zum Löschen anderer Zeilen außer den Zeilen 3 bis 6:

sed '3,6!d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

3. Leerzeilen löschen

sed unterstützt auch das Löschen von Leerzeilen in Dateien, der Befehl lautet wie folgt folgt:

sed '/^$/d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Tipp: Die Ausdrücke innerhalb der beiden Schrägstriche / / spielen hier die Rolle des Textabgleichs. Sie können sich auf die Verwendung regulärer Ausdrücke beziehen. Im Folgenden finden Sie einige häufig verwendete Methoden, um das Lernen aller zu vertiefen.

4. Zeilen löschen, die bestimmte Zeichen enthalten

Angenommen, wir möchten die Zeilen löschen, die das Wort System in der Beispieldatei enthalten, können wir /System/ verwenden, was bedeutet, dass, wenn die Zeichenfolge System erscheint, mit Match fortfahren, Der spezifische Befehl lautet wie folgt:

sed '/System/d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Darüber hinaus können wir auch logische Bedingungen hinzufügen, zum Beispiel den folgenden Befehl:

sed '/System\|Linux/d' sed-demo.txt
Nach dem Login kopieren

So löschen Sie bestimmte Zeilen einer Datei unter Linux

Das Symbol | steht für logisches ODER, die Bedeutung des obigen Befehls Im Text stehen Zeilen mit System oder Linux, die gelöscht werden müssen. 5. Zeilen löschen, die mit bestimmten Zeichen beginnen Wie bereits erwähnt, kann das $-Zeichen als Ende verstanden werden. Gibt es also Zeichen, die den Anfang darstellen können? Die Antwort lautet: Ja, hier können wir das ^-Zeichen verwenden, um den Anfang darzustellen.

Wenn wir also Zeilen löschen möchten, die mit einem bestimmten Zeichen beginnen, beispielsweise um Zeilen zu löschen, die mit R beginnen, können wir den folgenden Befehl verwenden:

sed '/^R/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

那么问题来了,比如我想删除以 R 或者 F 开头的行,那我是不是要执行两次命令呢?如果是有更多岂不是要执行多次命令?这里它有一个简单的写法,你只要把这些字符写在一对中括号 [] 里就可以了:

sed '/^[RF]/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

上面命令的作用是 删除以 R 或者 F 开头的行。

6. 删除特定字符结尾的行

同上面一个道理,删除以某一个字符结尾的行,比方说删除以 m 结尾的行,我们可以这样做:

sed '/m$/d' sed-demo.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

删除以 x 或 m 结尾的行可以这样写:

sed '/[xm]$/d' sed-demo.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

7. 删除以大写字母开头的行

这里问题又来了,我想要删除所有以大写字母开头的行呢?按照上面的做法是不是要将 A 到 Z 这 26 个字母都写进 [ ] 里呢?其实我们大可不必这样做,在 A 和 Z 中间加个 - 就可以了:

sed '/^[A-Z]/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

机智的你看到这里肯定会想到其他类似的用法的了,不妨看看下面是否有你想到的命令吧。

8. 删除包含字母字符的行

sed '/[A-Za-z]/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

9. 删除包含数字的行

sed '/[0-9]/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

另外,通过这个例子,我们可以加上 ^ 和 $ 更好地看到他们之间的区别:

sed '/^[0-9]/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

sed '/[0-9]$/d' sed-demo-1.txt
Nach dem Login kopieren

1So löschen Sie bestimmte Zeilen einer Datei unter Linux

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonSo löschen Sie bestimmte Zeilen einer Datei unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!