Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk memadam baris tertentu fail dalam Linux

Bagaimana untuk memadam baris tertentu fail dalam Linux

青灯夜游
青灯夜游asal
2022-07-19 18:53:3119573semak imbas

Di Linux, anda boleh menggunakan arahan sed untuk memadam baris tertentu bagi fail yang ditentukan Jalankan pernyataan "sed 'M,Nd' file name" untuk memadam kandungan baris berturut-turut dari M ke N. Laksanakan. Pernyataan "sed ' N1d;N2d;N3d;$d' file name" boleh memadamkan kandungan baris terputus N1, N2 dan N3 Laksanakan pernyataan "sed '/specific character/d' file name" untuk memadamkan baris yang mengandungi khusus aksara. Laksanakan Pernyataan "sed '/^Specific character/d' file name" boleh memadamkan baris bermula dengan aksara tertentu.

Bagaimana untuk memadam baris tertentu fail dalam Linux

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Di Linux, anda boleh menggunakan arahan sed untuk memadam baris tertentu bagi fail yang ditentukan.

sed ialah singkatan daripada Stream Editor Ia digunakan untuk penukaran teks asas dalam Linux dan merupakan arahan penting untuk operasi fail.

Berikut ialah beberapa contoh penggunaan perintah sed, meliputi kebanyakan senario penggunaan, ia membantu anda mempelajari arahan sed dari cetek ke dalam, membolehkan anda memadamkan baris fail tertentu dengan mudah dan cekap.

Mula-mula kami menyediakan fail demonstrasi sed-demo.txt dan lihat kandungan fail

cat sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Kemudian kita boleh menggunakan arahan sed untuk bereksperimen.

1. Padamkan baris tertentu

Pertama sekali, kita mulakan dengan memadam baris tertentu, seperti memadam baris pertama dan baris baris terakhir sebenarnya, Ia adalah baris ke-N.

Format arahan untuk memadam baris N:

sed 'Nd' file

Mari cuba padam baris pertama:

sed '1d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Sangat mudah, bukan? Tidak akan ada banyak penjelasan di sini Jika anda ingin memadam kandungan baris mana, anda hanya perlu menggantikan 1 dalam arahan dan ia akan menjadi ok.

Persoalannya, apakah nombor yang digunakan untuk mewakili baris terakhir? Berikut adalah sedikit petua untuk anda, anda boleh menggunakan tanda dolar $ untuk mewakili penghujungnya, jadi arahan untuk memadam baris terakhir boleh ditulis seperti ini:

sed '$d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

2 . Padamkan baris tertentu

Perintah sed boleh memadamkan baris berturut-turut atau terputus.

Padam baris berturut-turut, sebagai contoh, padam baris 5 hingga 7:

sed '5,7d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Padam baris terputus, contohnya, padam baris pertama dan ke-7 . Baris ke-5, ke-9 dan terakhir:

sed '1d;5d;9d;$d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Selain itu, ia juga boleh digunakan dengan NOT!, seperti memadam baris lain kecuali baris 3 hingga 6 :

sed '3,6!d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

3 Padamkan baris kosong

sed juga menyokong pemadaman baris kosong fail. , Perintahnya adalah seperti berikut:

sed '/^$/d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Petua: Ungkapan dalam dua garis miring / / di sini memainkan peranan dalam pemadanan teks Anda boleh merujuk kepada penggunaan ungkapan biasa. Di bawah adalah beberapa kaedah yang biasa digunakan untuk mendalami pembelajaran setiap orang.

4. Padamkan baris yang mengandungi aksara tertentu

Katakan kita ingin memadamkan baris yang mengandungi perkataan System dalam fail contoh, kita Anda boleh gunakan /System/, yang bermaksud bahawa rentetan Sistem akan dipadankan jika ia muncul Perintah khusus adalah seperti berikut:

sed '/System/d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Bukan itu sahaja, kita juga boleh menambah. Keadaan logik, sebagai contoh, arahan berikut:

sed '/System\|Linux/d' sed-demo.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Simbol | mewakili logik ATAU Perintah di atas bermaksud bahawa semua baris dengan Sistem atau Linux dalam teks mestilah untuk memadam.

5. Padamkan baris bermula dengan aksara tertentu

Mula-mula, kami mencipta fail sampel lain sed-demo-1.txt untuk Demonstrasi yang lebih baik, kandungannya adalah seperti berikut:

cat sed-demo-1.txt

Bagaimana untuk memadam baris tertentu fail dalam Linux

Seperti yang dinyatakan di atas, tanda $ boleh difahami sebagai penghujung, jadi adakah watak yang boleh mewakili permulaan? Jawapannya ya, di sini kita boleh menggunakan tanda ^ untuk mewakili permulaan.

Jadi, apabila kita ingin memadam baris yang bermula dengan aksara tertentu, contohnya, memadam baris yang bermula dengan R, kita boleh menggunakan arahan berikut:

sed '/^R/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

sed '/^[RF]/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

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

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

sed '/m$/d' sed-demo.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

sed '/[xm]$/d' sed-demo.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

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

sed '/^[A-Z]/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

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

sed '/[A-Za-z]/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

9. 删除包含数字的行

sed '/[0-9]/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

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

sed '/^[0-9]/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

sed '/[0-9]$/d' sed-demo-1.txt

1Bagaimana untuk memadam baris tertentu fail dalam Linux

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Bagaimana untuk memadam baris tertentu fail dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn