Saya memiliki direktori yang penuh dengan file teks. Tujuan saya adalah menambahkan teks ke awal dan akhir dari semuanya. Teks yang muncul di awal dan akhir sama untuk setiap file.
Berdasarkan kode yang saya dapatkan dari web, ini adalah kode untuk menambahkan ke awal file:
echo -e 'var language = {\n$(cat $BASEDIR/Translations/Javascript/*.txt)' > $BASEDIR/Translations/Javascript/*.txt
Ini adalah kode untuk menambahkan ke akhir file. Tujuannya adalah untuk menambahkan teks };
di akhir setiap file:
echo "};" >> $BASEDIR/Translations/Javascript/*.txt
Contoh yang saya ambil adalah untuk bertindak pada file individual. Saya pikir saya akan mencoba bertindak pada banyak file menggunakan wildcard *.txt
,.
Saya mungkin akan membuat kesalahan lain juga. Bagaimana pun, bagaimana cara menambahkan teks ke awal dan akhir beberapa file?
sumber
-i
alih-alih penggantian file ini tidak berfungsi, hanya mencetak ke stdout.Coba gunakan
ex
:di mana perintah:
bufdo!
mengeksekusi perintah di bawah ini untuk setiap buffer / file yang dibuka (catatan: ini bukan POSIX )1s/^/HEAD/
- menyisipkanHEAD
teks ke dalam baris pertama di awal baris$s/$/TAIL/
- menambahkanTAIL
teks pada baris terakhir di akhir barisdan argumennya adalah:
-s
- mode diam / cepat-cxa
- simpan semua buffer / file yang dibuka dan keluar*.foo
- semua file dalam direktori saat ini (*
) denganfoo
ekstensi, penggunaan**/*.foo
untuk recursivity (setelah mengaktifkan globstar:shopt -s globstar
)sumber
Dengan
gnu awk
, menggunakaninplace
ekstensi danBEGINFILE
/ENDFILE
:sumber
Juga berhak menjadi (dengan hasil dalam
.out
file):Varian lain - file sumber yang lebih rumit diganti dengan hasil:
sumber
Perl one-liner untuk menyelamatkan:
sumber