mengotomatiskan pengeditan teks file


3

Saya memiliki situs web online yang ingin saya pindahkan ke URL baru. Karena itu saya perlu mengedit semua file html situs web (100+ file) untuk memperbarui tautan URL di dalam setiap file situs web ini.

Saya sedang berpikir untuk membuat salinan offline dari file situs web untuk diedit.

Apakah mungkin menggunakan Automator OS X untuk - buka setiap file di folder file situs web - cari di dalam konten file untuk tautan URL tertentu (katakan "www.website.com") dan ubah ke URL baru (katakanlah "www.website.com/old")?

Lain, apakah saya harus bergantung pada editor teks + Automator untuk membuat proses ini?

Atau, dapatkah itu dilakukan menggunakan skrip UNIX yang Anda jalankan di Terminal?

Terima kasih atas sarannya tentang bagaimana melakukan proses ini!


Kamu bisa memakai sed di Terminal, tetapi untuk jawaban spesifik kita perlu melihat kutipan dari salah satu halaman web yang menunjukkan URL lama dan baru.
nohillside

Saya melakukan sesuatu yang serupa beberapa waktu lalu tetapi melakukannya di BBEdit karena dapat menemukan / mengganti beberapa file. Jika Anda tertarik pada opsi komersial ($).
Steve Chambers

Apakah ada solusi di bawah ini yang membantu Anda?
ʀ2ᴅ2

Jawaban:


3

Dengan asumsi semua file berada di folder yang sama:

mkdir new
for i in *.html; do
    sed 's|website.com|website.com/old|g' "$i" > "new/$i"
done

2

Jika Anda biasa mengedit konten file situs web, Anda harus berinvestasi dalam editor.

Teks Luhur 2

Jatuhkan situs web ke ikon dan itu akan membangun proyek:

enter image description here

menjalankan cmd bergeser F dan masukkan penggantinya:

enter image description here

Klik tautan Replace tombol dan verifikasi Replace:

enter image description here

Ini akan membuka dan mengubah semua file:

enter image description here


BBEdit

Merupakan aplikasi yang luar biasa dan kuat yang saya gunakan untuk mengedit kode. Seret dan jatuhkan folder ke BBEdit dan buka File -> Save Project dan itu akan membuat file bernama foobar.bbprojectd:

enter image description here

menjalankan cmd bergeser F dan pilih proyek dengan parameter pengganti:

enter image description here

Ini akan meminta Anda setelah mengklik Replace All:

enter image description here

Jika Anda tidak yakin dengan perubahan Anda pilih Leave Open karena jika kamu memilih Save to disk sangat sulit untuk kembali.


Perl

Sudah ada a sed solusi tetapi Anda juga bisa melakukan hal yang sama dengan Perl:

# !/bin/bash

DIR="/Users/vader/desktop/test"
NEW="$DIR/new"

if [ ! -e "$DIR/new" ]; then 
    mkdir -p new
    echo "made folder new"
else
    echo "folder exists"
fi

for htmlfile in $(ls "$DIR"/*.html); do
    TEMPFILE="$htmlfile.$$"
    htmlbase=$(basename $htmlfile)
    echo "Working on "$htmlbase
    perl -pe 's|www.website.com|www.website.com\/old|g' "$htmlfile" > $TEMPFILE && mv $TEMPFILE "$NEW/$htmlbase"
done

Ada editor lain di luar sana tetapi ini adalah dua yang saya gunakan utamanya. Anda juga bisa melakukan ini dalam AppleScript murni tetapi Anda belum menunjukkan kode apa pun dan terminal yang disebutkan jadi saya membuat di atas dalam Perl.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.