Saya memiliki daftar panjang nama domain yang harus saya hapus dari / etc / remotedomains. Mereka mungkin tidak berada dalam urutan tertentu dalam file. Setiap domain berada pada satu baris.
Bagaimana saya bisa mengulangi daftar dan menemukan garis itu di domain jauh dan menghapusnya.
command-line
shell
grep
text-processing
xenoterracide
sumber
sumber
/etc/localdomains
dan/etc/remotedomains
sebelum melakukan hal-hal seperti ini.-F
adalah untuk pencocokan string tetap ("pencocokan tepat"), tetapi itu tidak memaksa pola untuk mencocokkan seluruh baris. POSIX menentukan-x
flag untuk membatasi kecocokan pada instance di mana suatu pola cocok dengan seluruh baris.Gunakan komunikasi!
Dari halaman manual:
Opsi -1, -2 dan -3 menonaktifkan kolom masing-masing.
Namun itu mengharuskan file diurutkan.
sumber
sed -r -i -e '/^(domain1|domain2|domain3|...|domainN)$/d' domainlist.txt
Jika daftar domain yang akan Anda hapus ada dalam file, maka:
sed -r -i -e '/^'"$(xargs <removelist.txt|sed -e 's/ /|/g)"')$/d' domainlist.txt
Catatan:
Gunakan -i.bak untuk membuat cadangan domainlist.txt
Jika removelist.txt memiliki banyak ribuan entri, bisa meluap panjang baris perintah maksimal. Ini bukan skenario yang sangat mungkin tetapi sesuatu yang harus Anda waspadai.
Pada refleksi lebih lanjut, risiko itu dapat dihilangkan dengan:
sumber