GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Unix Sed:Menambahkan, Menyisipkan, Mengganti, dan Menghitung Baris File

Artikel ini adalah bagian dari seri tutorial perintah Unix sed yang sedang berjalan. Dalam artikel kami sebelumnya, kami mempelajari sed dengan perintah tunggal — mencetak, menghapus, mengganti, dan menulis file.

Sed menyediakan banyak perintah untuk melakukan sejumlah operasi dengan baris dalam file.

Dalam artikel ini mari kita tinjau cara menambahkan, menyisipkan, mengganti baris dalam file dan cara mendapatkan nomor baris file.

  • Tambahkan Baris
  • Sisipkan Baris
  • Ganti Garis
  • Hitung Garis

Mari kita buat file geekstuff.txt terlebih dahulu yang akan digunakan dalam semua contoh yang disebutkan di bawah.

$cat thegeekstuff.txt
Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Menambahkan Baris Menggunakan Perintah Sed

Sed memberikan perintah "a" yang menambahkan baris setelah setiap baris dengan alamat atau pola.

Syntax:

#sed 'ADDRESS a\
	Line which you want to append' filename

#sed '/PATTERN/ a\
	Line which you want to append' filename

Contoh Penambahan Sed 1. Tambahkan baris setelah baris ke-3 file.

Tambahkan baris "Gadget dan situs web keren" setelah baris ke-3. perintah sed “a” menyisipkan baris setelah kecocokan.

$ sed '3 a\
> Cool gadgets and websites' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Cool gadgets and websites
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Contoh Tambahkan Sed 2. Tambahkan baris setelah setiap baris yang cocok dengan pola

Perintah sed di bawah ini akan menambahkan baris “Linux Scripting” setelah setiap baris yang cocok dengan pola “Sysadmin”.

$ sed '/Sysadmin/a \
> Linux Scripting' thegeekstuff.txt

Linux Sysadmin
Linux Scripting
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.
Linux Scripting

Sed Append Contoh 3. Tambahkan baris di akhir file

Contoh berikut, menambahkan baris “Desain Situs Web” di akhir file.

$ sed '$ a\
> Website Design' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.
Website Design

Menyisipkan Baris Menggunakan Perintah Sed

Perintah sed “i” digunakan untuk menyisipkan baris sebelum setiap baris dengan range atau pola.

Syntax:

#sed 'ADDRESS i\
	Line which you want to insert' filename

#sed '/PATTERN/ i\
	Line which you want to insert' filename

Contoh Sisipan Sed 1. Tambahkan satu baris sebelum baris ke-4 dari baris tersebut.

Tambahkan baris "Gadget dan situs web keren" sebelum baris ke-4. Perintah “a” menyisipkan baris setelah kecocokan sedangkan “i” menyisipkan sebelum kecocokan.

$ sed '4 i\
> Cool gadgets and websites' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Cool gadgets and websites
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Contoh Sisipkan Sed 2. Sisipkan satu baris sebelum setiap baris dengan pola

Perintah sed di bawah ini akan menambahkan baris "Linux Scripting" sebelum setiap baris yang cocok dengan pola yang disebut 'Sysadmin".

$ sed '/Sysadmin/i \
> Linux Scripting' thegeekstuff.txt

Linux Scripting
Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Linux Scripting
Windows- Sysadmin, reboot etc.

Contoh Sisipkan Sed 3. Sisipkan baris sebelum baris terakhir file.

Tambahkan baris “Desain Situs Web” sebelum baris terakhir file.

$ sed '$ i\
> Website Design' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Website Design
Windows- Sysadmin, reboot etc.

Ganti Baris Menggunakan Perintah Sed

Perintah “c” di sed digunakan untuk mengganti setiap baris yang cocok dengan pola atau rentang dengan baris baru yang diberikan.

Syntax:

#sed 'ADDRESS c\
	new line' filename

#sed '/PATTERN/ c\
	new line' filename

Contoh Ganti Sed 1. Ganti baris pertama file

Perintah di bawah ini menggantikan baris pertama file dengan "The Geek Stuff".

$ sed '1 c\
> The Geek Stuff' thegeekstuff.txt

The Geek Stuff
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Contoh Ganti Sed 2. Ganti garis yang cocok dengan pola

Ganti setiap baris yang memiliki pola “Linux Sysadmin” menjadi “Linux Sysadmin – Scripting”.

$ sed '/Linux Sysadmin/c \
> Linux Sysadmin - Scripting' thegeekstuff.txt

Linux Sysadmin - Scripting
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Contoh Ganti Sed 3. Ganti baris terakhir file

Perintah sed yang diberikan di bawah ini menggantikan baris terakhir file dengan "Baris Terakhir file".

$ sed '$ c\
> Last line of the file' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Last line of the file

Mencetak Nomor Baris Menggunakan Perintah Sed

“=" adalah perintah di sed untuk mencetak nomor baris saat ini ke output standar.

Syntax:

#sed '=' filename

Sintaks perintah send di atas mencetak nomor baris di baris pertama dan baris asli dari file di baris berikutnya .

Perintah sed ‘=’ hanya menerima satu alamat, jadi jika Anda ingin mencetak nomor baris untuk rentang baris, Anda harus menggunakan kurung kurawal.

Syntax:

# sed -n '/PATTERN/,/PATTERN/ {
=
p
}' filename

Contoh Nomor Baris Sed 1. Temukan nomor baris yang berisi pola

Perintah sed di bawah ini mencetak nomor baris yang cocok dengan pola “Database”

$ sed -n '/Databases/=' thegeekstuff.txt

2

Contoh Nomor Baris Sed 2. Rentang Pencetakan nomor baris

Cetak nomor baris untuk kecocokan garis dari pola “Oracle” hingga “Productivity”.

$ sed -n '/Oracle/,/Productivity/{
> =
> p
> }' thegeekstuff.txt

2
Databases - Oracle, mySQL etc.
3
Security (Firewall, Network, Online Security etc)
4
Storage in Linux
5
Productivity (Too many technologies to explore, not much time available)

Contoh Nomor Baris Sed 3. Cetak jumlah total baris dalam file

Nomor baris dari baris terakhir file akan menjadi total baris dalam file. Pola $ menentukan baris terakhir file.

$ sed -n '$=' thegeekstuff.txt

6

Linux
  1. Ganti Baris Dengan Konten Lain Menggunakan Sed Dan Paralel Untuk File Besar?

  2. Ganti Rentang Garis Dengan Rentang Garis (sed Atau Lainnya)?

  3. Hitung Baris Dalam File?

  1. Bagaimana Cara Menambahkan Beberapa Baris Ke File?

  2. unix - hitungan kolom dalam file

  3. sed - menyisipkan baris setelah baris X setelah pertandingan

  1. Perintah unix cepat untuk menampilkan baris tertentu di tengah file?

  2. skrip bash menambahkan teks ke baris pertama file

  3. Temukan dan ganti teks dalam file di antara rentang baris menggunakan sed