Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana untuk memadam baris tertentu fail dalam Linux
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.
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
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
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
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
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
Selain itu, ia juga boleh digunakan dengan NOT!, seperti memadam baris lain kecuali baris 3 hingga 6 :
sed '3,6!d' sed-demo.txt
3 Padamkan baris kosong
sed juga menyokong pemadaman baris kosong fail. , Perintahnya adalah seperti berikut:
sed '/^$/d' sed-demo.txt
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
Bukan itu sahaja, kita juga boleh menambah. Keadaan logik, sebagai contoh, arahan berikut:
sed '/System\|Linux/d' sed-demo.txt
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
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
那么问题来了,比如我想删除以 R 或者 F 开头的行,那我是不是要执行两次命令呢?如果是有更多岂不是要执行多次命令?这里它有一个简单的写法,你只要把这些字符写在一对中括号 [] 里就可以了:
sed '/^[RF]/d' sed-demo-1.txt
上面命令的作用是 删除以 R 或者 F 开头的行。
6. 删除特定字符结尾的行
同上面一个道理,删除以某一个字符结尾的行,比方说删除以 m 结尾的行,我们可以这样做:
sed '/m$/d' sed-demo.txt
删除以 x 或 m 结尾的行可以这样写:
sed '/[xm]$/d' sed-demo.txt
7. 删除以大写字母开头的行
这里问题又来了,我想要删除所有以大写字母开头的行呢?按照上面的做法是不是要将 A 到 Z 这 26 个字母都写进 [ ] 里呢?其实我们大可不必这样做,在 A 和 Z 中间加个 - 就可以了:
sed '/^[A-Z]/d' sed-demo-1.txt
机智的你看到这里肯定会想到其他类似的用法的了,不妨看看下面是否有你想到的命令吧。
8. 删除包含字母字符的行
sed '/[A-Za-z]/d' sed-demo-1.txt
9. 删除包含数字的行
sed '/[0-9]/d' sed-demo-1.txt
另外,通过这个例子,我们可以加上 ^ 和 $ 更好地看到他们之间的区别:
sed '/^[0-9]/d' sed-demo-1.txt
sed '/[0-9]$/d' sed-demo-1.txt
相关推荐:《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!