Bagaimana saya bisa mengambil setiap bagian secara terpisah dari nama file berikut?
DSA4020_frontcover_20346501_2011-05.doc
Saya ingin mengambil informasi seperti di bawah ini:
name = DSA4020
type = frontcover
id = 20346501
date = 2011-05
Apakah mungkin untuk melakukan ini dengan sed?
Jawaban:
Bagaimana dengan
sed
resep ini?memberikan formulir CSV yang bagus ini,
sumber
Anda dapat menggunakan yang berikut ini untuk membagi di setiap _ setelah menghapus ekstensi:
Ganti digit terakhir dengan 2, 3, 4 untuk mendapatkan nilai individu setiap kali.
sumber
Jika jumlah bidangnya konstan:
Kemudian akses $ {VARS [i]} ...
Alternatif:
Dan jika didukung (bash 3+)
Jika Anda memiliki beberapa nama file, cukup tambahkan satu
for
lingkaran untuk membaca sekilas semuanya.sumber
Pisahkan nama file dan simpan dalam parameter posisi:
sumber
${filename%.doc}
Coba ini:
output akan seperti ini:
sumber