Bash loop melalui file dalam direktori

Bash Loop Through Files Directory



Di Ubuntu, termasuk Bash, loop memungkinkan untuk menerapkan operasi pada banyak file. Pengulangan adalah hal yang paling efektif karena memungkinkan pengguna untuk menerapkan logika yang sama ke item berulang kali dengan menggunakan baris kode kecil.

Untuk memahami konsep perulangan file dalam direktori, Anda memerlukan akses ke aplikasi dan layanan Ubuntu. Bila Anda memiliki beberapa hak istimewa, Anda hanya dapat beroperasi dengan file dan direktori.







Anda harus menginstal Bash di sistem operasi Ubuntu. Dalam beberapa instalasi, itu diinstal secara default dalam pembaruan paket. Jika sudah terinstal, Anda perlu memutakhirkan versi karena harus di atas 4. Untuk melanjutkan panduan saat ini, Anda harus mempertahankan versi di atas 4. Untuk memeriksa versi Bash yang sudah diinstal sebelumnya di sistem Anda, gunakan perintah di terminal Ubuntu.



$Pesta--Versi: kapan



Jadi, Anda harus melakukan beberapa fungsi pada file dan direktori. Anda dapat menjalankan perintah yang dijelaskan di bawah ini pada direktori mana pun pilihan Anda. Tapi lebih tepatnya, lebih baik membuat direktori baru sehingga semua barang-barang ini secara langsung dapat diakses dengan mudah ketika Anda membukanya.





Langkah pertama adalah membuat direktori. Kami telah mengambil contoh nama direktori abc. Buat direktori dengan menjalankan perintah.

$mkdirabc



Setelah membuat direktori, sekarang Anda perlu melakukan semua perintah pada itu. Jadi setelah pembuatan direktori, alihkan ke direktori itu. Gunakan perintah yang dikutip di bawah ini:

$CDabc

Setelah masuk ke direktori, sekarang buat beberapa file dengan menggunakan perintah sentuh.

$menyentuhfile1.txt

Banyak metode yang digunakan untuk membuat file di Ubuntu. Selain perintah sentuh, kami telah menggunakan perintah gema di sini untuk membuat file dan menambahkan konten di dalamnya secara kolektif dalam satu perintah:

$dibuangLinux, ubuntu, Postgresql>file7.txt

File ini dibuat pada direktori sederhana yang sedang berjalan secara default. Jadi nama direktori yang baru dibuat tidak ditambahkan dengan command prompt. Anda juga dapat membuat file dengan menggunakan rentang dan perluasan di perintah sentuh.

$menyentuhmengajukan-{1..8}.txt

Dengan menggunakan perintah ini, file baru berekstensi .txt akan dibuat dengan menggunakan satu perintah.

Setelah itu, sekarang Anda dapat mengulang direktori yang baru dibuat. Menampilkan nama file. Karena kita harus mengulang file yang ada di direktori, kita membutuhkan loop. Loop sangat efektif untuk digunakan karena mereka mengambil data dalam waktu yang lebih singkat, membutuhkan lebih sedikit input. Di sini kita akan menggunakan for loop. Dengan menggunakan loop ini, setiap nama file akan ditampilkan di baris berikutnya.

$untuk mengajukan di dalam *;melakukan dibuang $berkas;selesai

* digunakan untuk semua file yang ada di direktori ini. Ini memungkinkan loop 'untuk' untuk mengambil semua file. Tetapi untuk membuat hasilnya tepat, Anda dapat menambahkan beberapa istilah dengan tanda asterisk. Misalnya, 'file-*' digunakan untuk semua file yang dimulai dari file. Dan *.txt untuk mengambil file yang berekstensi .txt. Kami akan menggunakan contoh-contoh ini lebih lanjut dalam artikel.

Loop ini akan bekerja sehingga akan mengambil semua file dari direktori dan kemudian menampilkan semua file melalui perintah echo. Tanda $ di sini mewakili nama file. Dari hasilnya, Anda dapat melihat bahwa setiap nama file ditampilkan.

Setelah memverifikasi file yang dibuat dengan menampilkan nama file, sekarang saatnya memasukkan nilai dalam file karena file yang dibuat kosong. Ini dapat dilakukan secara manual dengan membuka setiap file di editor teks dan kemudian menulis data. Opsi kedua adalah memasukkan data di setiap file melalui perintah di terminal. Tetapi membutuhkan waktu untuk memasukkan data di setiap file melalui satu perintah untuk setiap file. Tapi itu bisa dilakukan dengan mudah dan kolektif dengan menggunakan for loop dalam satu perintah.

$untuk mengajukan di dalam *;melakukan dibuang -2 $berkas Linux Ubuntu> $berkas;selesai

Setelah eksekusi perintah, nilai telah dimasukkan di setiap file yang kita buat. Saat digunakan dengan echo, flag '-e' akan mempertahankan baris baru dalam file. Untuk melihat data yang dimasukkan, Anda dapat menavigasi ke direktori 'abc'. Sekarang buka file teks apa saja. File tidak kosong lagi.

‘$file akan menampilkan nama file terlebih dahulu dalam file, dan data yang Anda masukkan akan ditampilkan pada baris kedua karena digunakan untuk menggeser kata yang digunakan setelah ini ke baris lain. Anda juga dapat memeriksa data yang dimasukkan melalui perintah.

$untuk mengajukan di dalam *;melakukan kucing $berkas;selesai

Perintah Cat digunakan untuk mengambil data yang ada di semua file direktori.

Baik prosedur memasukkan data dan mengambilnya dapat dilakukan melalui satu perintah.

$untuk mengajukan di dalam *;melakukan dibuang-Dan$berkas pemrograman bash> $berkas;kucing $berkas;selesai

Langkah pertama adalah menulis data dalam file dan kemudian menampilkannya. Ketika Anda menjalankan perintah, output akan menjadi sebagai berikut:

Setiap file berisi nilai yang sama. Ini karena loop 'untuk'.

Kita tahu loop untuk mengambil data dan memasukkan nilai, dll., tetapi loop juga digunakan untuk membuat cadangan. File-file ini memiliki ekstensi .bak di akhir. Sekarang jalankan perintah backup di shell untuk melihat backup dari setiap file.

$untuk mengajukan di dalam *;melakukan cp $berkas $berkas.dibelakang;selesai;

Kata kunci cp digunakan untuk membuat cadangan semua file. Sekarang untuk melihat file di mana perintah ini diterapkan. Kami menggunakan perintah sebagai:

$ls- NS

Sekarang terlihat dari output bahwa detail file ditampilkan. Tanggal, nama file, nama pengguna, dan waktu juga dihapus. Juga, Anda memiliki salinan akurat dari setiap file.

Jika kita hanya menginginkan file jpeg. Kami akan menggunakan ini dalam perintah

$untuk mengajukan di dalam *.jpeg;melakukan dibuang $berkas;selesai

Ini akan membawa nama-nama gambar saja.

Temuan sederhana juga dapat melakukan fungsi yang sama. Ini akan mengambil semua file dengan ekstensi .sh.

$Temukan. – nama*NS

Kami akan menggunakan kata kunci find di for loop.

$untuk mengajukan di dalam *;melakukanTemukan. Mengajukan.*;selesai

Ini akan membawa semua file ke direktori saat ini. Ini memiliki ekstensi .bak, .jpeg, .txt. dll.

Sekarang, jika Anda ingin melihat nama semua file direktori dan data di dalamnya, ini juga dilakukan oleh loop 'for'.

$untuk mengajukan di dalam *;melakukan mengajukan $berkas;selesai

Kesimpulan

Looping melalui file di direktori mana pun tidak sulit lagi, seperti yang kita ketahui, menggunakan loop di Bash dan tampil di sistem operasi Linux. Tutorial ini adalah panduan lengkap untuk membuat, mengakses, dan melakukan operasi pada direktori menggunakan loop 'untuk'.