GNU/Linux >> Belajar Linux >  >> Linux

Mengubah konten file melalui skrip shell

*

#! /bin/sh
file=xyz.cfg
addr=$1
port=$2
username=$3
sed -i 's/address=.*/address='$addr'/' $file
sed -i 's/port=.*/port='$port'/' $file
sed -i 's/username=.*/username='$username'/' $file

*

Saya harap yang ini akan lebih mudah dipahami untuk pemula


sed -i 's/something/other/g' filename.txt 

Akan mengedit filename.txt di tempat, dan mengubah kata 'something' menjadi 'other'

Saya pikir -i mungkin merupakan ekstensi GNU, tetapi jika tidak apa-apa untuk Anda, Anda dapat menambahkannya melalui find, xargs, dll.

Jika Anda ingin mengubahnya dalam skrip shell, Anda dapat menggunakan argumen pada baris perintah dan merujuknya dengan angka, misalnya $1

Sunting:

Sesuai komentar saya, jawaban sudo_O di bawah ini persis seperti contoh yang Anda inginkan. Apa yang akan saya tambahkan adalah bahwa biasanya Anda ingin melakukan pencocokan seperti itu dengan banyak file, mencakup subdirektori, dll, jadi kenali find/xargs, dan Anda dapat menggabungkan keduanya. Contoh sederhana untuk mengubah subnet dalam sekumpulan file .cfg adalah:

find -name '*.cfg' -print0 | xargs -0 -I {} sed -ie 's/\(192.168\)\.1/\1\.7/' {}

Catat -print0/-0 args untuk menemukan/xargs (sangat berguna untuk jalur/nama file dengan spasi), dan Anda harus keluar dari tanda kurung karena shell (sama dengan contoh sudo)


Bagaimana dengan sesuatu seperti:

#!/bin/bash

addr=$1
port=$2
user=$3

sed -i -e "s/\(address=\).*/\1$1/" \
-e "s/\(port=\).*/\1$2/" \
-e "s/\(username=\).*/\1$3/" xyz.cfg

Dimana $1,$2 dan $3 adalah argumen yang diteruskan ke skrip. Simpan file seperti script.sh dan pastikan itu dapat dieksekusi dengan chmod +x script.sh maka Anda dapat menjalankannya seperti:

$ ./script.sh 127.8.7.7 7822 xyz_ITR4

$ cat xyz.cfg
group address=127.8.7.7
port=7822
Jboss username=xyz_ITR4

Ini memberi Anda struktur dasar namun Anda ingin berpikir tentang memvalidasi masukan dll.


Linux
  1. Script Shell Untuk Memindahkan File Terlama?

  2. Menjalankan File Skrip Melalui Ssh Melalui Sudo?

  3. Jalankan Script Yang Sama Pada Beberapa Server Melalui Ssh?

  1. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  2. Shell - Tulis konten variabel ke file

  3. Masukkan beberapa baris ke dalam file setelah pola yang ditentukan menggunakan skrip shell

  1. Bagaimana Membuat File Sementara Di Shell Script?

  2. skrip bash menambahkan teks ke baris pertama file

  3. pindahkan hanya jika file ada dalam skrip shell