Memisahkan String pada Pembatas di Bash

Bash

Menghancurkan Manipulasi String di Bash

Saat bekerja dengan skrip shell, tugas umum adalah membagi string berdasarkan pembatas. Misalnya, pertimbangkan string yang berisi alamat email yang dipisahkan dengan titik koma. Jika Anda perlu memproses setiap email satu per satu, memahami cara membagi string ini menjadi penting. Artikel ini akan memandu Anda melalui berbagai metode untuk mencapai hal ini di Bash.

Kita akan mengeksplorasi solusi seperti menggunakan perintah `tr` dan memanipulasi Internal Field Separator (IFS). Pada akhirnya, Anda akan dapat menangani pemisahan string secara efisien dan mengatur ulang IFS ke nilai defaultnya. Mari selami dan sederhanakan tugas skrip Bash Anda!

Memerintah Keterangan
tr Menerjemahkan atau menghapus karakter. Digunakan di sini untuk mengganti titik koma dengan karakter baris baru untuk memisahkan string.
IFS Pemisah Bidang Internal, digunakan untuk membagi string berdasarkan pembatas tertentu dalam skrip Bash.
read -r -a Membaca baris input dan membaginya menjadi sebuah array. Opsi -r mencegah garis miring terbalik diinterpretasikan sebagai karakter escape.
echo Mencetak teks ke output standar. Digunakan untuk menampilkan elemen string terpisah.
split Fungsi Perl yang membagi string menjadi daftar string berdasarkan pembatas yang ditentukan.
foreach Struktur perulangan Perl yang mengulangi daftar nilai.

Memahami Teknik Pemisahan String Bash

Skrip Bash pertama menunjukkan cara membagi string menggunakan memerintah. Di sini, kita mendefinisikan sebuah string dan gunakan setara dengan tr untuk menerjemahkan pembatas titik koma menjadi karakter baris baru. Ini secara efektif memecah string menjadi beberapa baris. Itu loop kemudian mengulangi setiap baris, mencetak alamat dalam tanda kurung siku. Metode ini mudah dan memanfaatkan kemampuan pemrosesan teks yang kuat dari perintah Unix untuk memanipulasi string.

Metode lain melibatkan penyesuaian . Dengan pengaturan sementara menjadi titik koma, kita dapat membagi string menjadi sebuah array. Kami menyimpan yang asli ke OIFS sebelum memodifikasinya, pastikan kami dapat memulihkannya nanti. Itu perintah membaca string input ke dalam array yang disebut , membaginya berdasarkan yang dimodifikasi . Setelah diproses, aslinya IFS dipulihkan. Pendekatan ini memberikan cara yang lebih terprogram untuk menangani pemisahan string di Bash, memungkinkan kita memanfaatkan array untuk manipulasi lebih lanjut.

Menggunakan Bash untuk Memisahkan String pada Pembatas

Skrip Bash

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Split string using 'tr' and iterate
mails=$(echo $IN | tr ";" "\n")
for addr in $mails; do
  echo "> [$addr]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

Memisahkan String di Bash Menggunakan IFS

Skrip Bash

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Save the original IFS
OIFS=$IFS
# Set IFS to semicolon
IFS=';'
# Split string into an array
read -r -a mails2 <<< "$IN"
# Restore the original IFS
IFS=$OIFS
# Iterate over the array
for x in "${mails2[@]}"; do
  echo "> [$x]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

Menggunakan Python untuk Pemisahan String

Skrip Python

#!/usr/bin/env python3
# Input string
IN = "bla@some.com;john@home.com"
# Split string by semicolon
mails = IN.split(';')
# Iterate and print each element
for addr in mails:
    print(f"> [{addr}]")

# Output:
# > [bla@some.com]
# > [john@home.com]

Menggunakan Perl untuk Memisahkan String

Skrip Perl

#!/usr/bin/env perl
use strict;
use warnings;
# Input string
my $IN = "bla@some.com;john@home.com";
# Split string by semicolon
my @mails = split(';', $IN);
# Iterate and print each element
foreach my $addr (@mails) {
    print "> [$addr]\n";
}

# Output:
# > [bla@some.com]
# > [john@home.com]

Teknik Pemisahan String Tingkat Lanjut di Bash

Metode ampuh lainnya untuk memisahkan string di Bash melibatkan penggunaan memerintah. adalah utilitas baris perintah serbaguna yang dirancang untuk pemindaian dan pemrosesan pola. Ini bisa sangat berguna untuk memisahkan string karena memungkinkan kita menentukan pemisah bidang khusus. Misalnya, kita bisa menggunakan untuk membagi string berdasarkan pembatas titik koma dan mencetak masing-masing komponen. Metode ini sangat fleksibel dan dapat menangani tugas manipulasi string yang lebih kompleks, menjadikannya alat yang berharga dalam perangkat pemrogram Bash.

Selain itu, perintah dapat digunakan untuk membagi string berdasarkan pembatas. Itu perintah biasanya digunakan untuk mengekstraksi bagian dari setiap baris data masukan. Dengan menentukan pembatas dengan pilihan dan memilih bidang dengan -f pilihan, kita dapat membagi dan mengekstrak bagian string secara efisien. Misalnya menggunakan akan mengekstrak alamat email pertama dari string input. Metode lanjutan ini memberikan lebih banyak kontrol dan presisi untuk tugas manipulasi string di Bash.

  1. Bagaimana cara membagi string pada pembatas di Bash?
  2. Anda dapat menggunakan variabel atau perintah seperti , , Dan cut untuk membagi string pada pembatas.
  3. Apakah yang variabel di Bash?
  4. Itu (Pemisah Bidang Internal) adalah variabel khusus yang mendefinisikan karakter yang digunakan untuk membagi teks masukan menjadi kata atau token.
  5. Bagaimana cara mengatur ulang variabel ke nilai defaultnya?
  6. Simpan yang asli nilai sebelum mengubahnya, dan memulihkannya setelah diproses: .
  7. Apa artinya perintah yang dilakukan dalam pemisahan string?
  8. Itu perintah menerjemahkan atau menghapus karakter. Itu dapat menggantikan pembatas dengan baris baru untuk memisahkan string: .
  9. Bisakah saya membagi string menjadi array menggunakan Bash?
  10. Ya, dengan mengubah variabel dan menggunakan , Anda dapat membagi string menjadi array:
  11. Apakah yang perintah digunakan untuk?
  12. adalah utilitas baris perintah untuk pemindaian dan pemrosesan pola. Itu dapat membagi string dengan menentukan pemisah bidang khusus.
  13. Bagaimana perintah bekerja?
  14. Itu perintah mengekstrak bagian dari setiap baris input. Itu dapat membagi string dengan menentukan pembatas dan memilih bidang: .
  15. Mengapa menggunakan membantu dalam pemisahan string?
  16. Menggunakan memungkinkan Anda menentukan pembatas khusus untuk memisahkan string, menjadikannya serbaguna untuk berbagai format masukan.
  17. Apakah mungkin untuk membagi string dengan beberapa pembatas di Bash?
  18. Ya, Anda dapat menggunakan kombinasi dari Dan untuk menangani banyak pembatas.
  19. Dapatkah saya menggunakan untuk pemisahan string di Bash?
  20. Ketika pada dasarnya adalah editor aliran, dapat dikombinasikan dengan perintah lain seperti untuk membagi string secara tidak langsung.

Menguasai manipulasi string di Bash dapat meningkatkan efisiensi skrip Anda secara signifikan. Apakah menggunakan untuk pembatas sederhana atau alat yang lebih canggih sejenisnya Dan , teknik ini penting untuk pemrograman Bash yang efektif. Ingatlah untuk selalu mengembalikan yang asli IFS untuk menghindari perilaku tak terduga dalam skrip Anda. Dengan metode ini, Anda dapat menangani berbagai tugas pemrosesan string di skrip Bash Anda.