GNU/Linux >> Belajar Linux >  >> Linux

Cara mengubah kata dalam file dengan skrip shell linux

Anda dapat menggunakan sed:

sed -i 's/MyCar on/MyCar off/' path/to/file

Anda dapat melakukan ini hanya dengan shell. Contoh ini menggunakan pernyataan kasus yang tidak perlu untuk contoh khusus ini, tetapi saya menyertakannya untuk menunjukkan bagaimana Anda dapat memasukkan beberapa penggantian. Meskipun kodenya lebih besar dari sed 1-liner, kode ini biasanya jauh lebih cepat karena hanya menggunakan shell bawaan (sebanyak 20x untuk file kecil).

REPLACEOLD="old"
WITHNEW="new"
FILE="tmpfile"
OUTPUT=""
while read LINE || [ "$LINE" ]; do
    case "$LINE" in
        *${REPLACEOLD}*)OUTPUT="${OUTPUT}${LINE//$REPLACEOLD/$WITHNEW}
";;
        *)OUTPUT="${OUTPUT}${LINE}
";;
    esac
done < "${FILE}"
printf "${OUTPUT}" > "${FILE}"

untuk kasus sederhana seseorang dapat menghilangkan pernyataan kasus:

while read LINE || [ "$LINE" ]; do
    OUTPUT="${OUTPUT}${LINE//$REPLACEOLD/$WITHNEW}
"; done < "${FILE}"
printf "${OUTPUT}" > "${FILE}"

Catatan:...|| [ "$LINE" ]... bit adalah untuk mencegah hilangnya baris terakhir dari file yang tidak diakhiri dengan baris baru(sekarang Anda tahu setidaknya satu alasan mengapa editor teks Anda terus menambahkannya)


Linux
  1. Cara Mengganti Shell di Linux

  2. Cara Mengubah Shell Default Di Linux

  3. Cara menjalankan skrip shell saat startup

  1. Cara Melihat atau Mengubah ACL di File Linux

  2. Bagaimana Membuat File Sementara Di Shell Script?

  3. Direktori perubahan skrip Shell dengan variabel

  1. Cara Mengubah Izin File Secara Rekursif dengan chmod di Linux

  2. Bagaimana cara menulis file dengan C di Linux?

  3. Membuat template dengan Linux dalam Shell Script?