Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk menggantikan kandungan fail secara berkumpulan dalam Linux
Kaedah: 1. Gunakan perintah perl, sintaksnya ialah "cari -nama'nama fail'|xargs perl-pi-e 's|Kandungan asal|Kandungan baharu|g'" 2. Gunakan arahan sed, Sintaks ialah "sed-i "s/kandungan asal/kandungan baharu/g" `grep original content-rl directory`".
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
Kaedah 1
Gunakan perl, arahannya adalah seperti berikut:
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
Contoh berikut Iaitu menggantikan ”http://repo1.maven.org/maven2“ dalam semua fail pom.xml dalam direktori semasa dan semua subdirektori dengan ”http://localhost :8081/nexus /content/groups/public“.
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'
Bahasa Perl digunakan di sini,
perl -pi -e Tambahkan pilihan -e pada arahan Perl , diikuti dengan baris kod, Kemudian ia akan menjalankan kod seperti skrip Perl biasa.
Menggunakan Perl daripada baris arahan boleh membantu mencapai beberapa transformasi masa nyata yang berkuasa. Mempelajari ungkapan biasa dengan teliti dan menggunakannya dengan betul akan menjimatkan banyak kerja penyuntingan manual.
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'
Kaedah 2
Gunakan arahan sed seperti berikut:
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
Cara mudah untuk membatch menggantikan rentetan dalam berbilang fail di bawah kaedah Linux. Gunakan arahan sed untuk menggantikan rentetan dalam berbilang fail.
Contohnya: Saya ingin menggantikan mahuinan dengan huinanma, laksanakan arahan:
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
Ini ialah perintah rentetan penggantian kumpulan paling mudah di Linux pada masa ini!
Format khusus adalah seperti berikut:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
Contoh kod:
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci Bagaimana untuk menggantikan kandungan fail secara berkumpulan dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!