Saya perlu menambahkan tag PHP yang mengelilingi file. Sangat mudah untuk menambahkannya menggunakan mereka
find . -exec echo "?>" >> '{}' \;
tetapi bagaimana saya bisa menambahkan tag <?php
?
text-processing
sed
Gilles 'SANGAT berhenti menjadi jahat'
sumber
sumber
sed
, dan memungkinkan menambahkan suffix cadangan.-i
tidak portabel, sintaks berbeda antara implementasi, dan merusak symlink. Anda akan lebih baik menggunakan aplikasi yang sebenarnya dirancang untuk mengedit file.Anda bisa menggunakan
AWK
filter seperti ini,Di mana
PREFIX
string awalan php Anda.sumber
Saya belum dapat meninggalkan komentar, tetapi untuk melakukan semuanya dalam satu langkah:
sumber
Anda dapat melakukannya dengan perl one-liner:
The
-0777
pasukan file menyeruput modus, sehingga seluruh file dibaca sebagai satu baris.-p
memungkinkan perulangan.-i
memungkinkan pengeditan di tempat file.^
menunjukkan awal suatu garis.Pembaruan: Seperti yang ditunjukkan dalam komentar, Anda dapat memilih untuk membuat cadangan secara otomatis dengan menggunakan
-i.bak
alih-alih-i
. Ini memberikan keamanan tambahan jika terjadi kesalahan pada perintah Anda. Argumen untuk-i
menjadi akhiran cadangan.Saat memperbarui banyak file, Anda dapat menjalankan perintah dengan
-i.backup${RANDOM}
, periksa apakah semua file diperbarui dengan benar, lalu hapus semua file dengan ekstensi itu.sumber
-i
bendera tanpa akhiran, harap peringatkan pembaca bahwa ini berarti Anda tidak memiliki cadangan . Untuk beberapa karakter lebih banyak (-i.bak
), Anda mendapatkan cadangan jika one-liner Anda termasuk salah ketik. Salah ketik yang cukup sederhana (misalnya, lupa-p
bendera) dapat merusak sepanjang hari Anda sebaliknya.sed
untuk mengedit aliran - file bukan aliran. Gunakan program yang dimaksudkan untuk tujuan ini, sepertied
atauex
. The-i
pilihan untuksed
tidak hanya tidak portabel, itu juga akan merusak setiap symlink Anda mungkin mengalami, karena pada dasarnya menghapus dan recreates itu, yang sia-sia.sumber
ed
untuk tujuan itu, tunjukkan ini dalam jawaban Anda.Alternatif dari apa yang Anda tulis untuk menambahkan sesuatu ke akhir setiap file di direktori (dalam
bash
):meskipun saya suka
find
one-liner Anda :)sumber
$FNAME
harus$fname
- berdasarkan konvensi, kami mengkapitalisasi variabel lingkungan (PAGER, EDITOR, SHELL, ...) dan variabel shell internal (BASH_VERSION, RANDOM, ...). Semua nama variabel lainnya harus mengandung setidaknya satu huruf kecil. Konvensi ini menghindari variabel lingkungan dan internal yang secara tidak sengaja diabaikan.Ada cara sederhana
sumber