Pangkas variabel di bash [duplikat]
Sep 19 2020
Saya perlu memangkas variabel wordpress.tar.gzmenjadi wordpress.
Saya sudah mencoba:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}
Jawaban
2 WiktorStribiżew Sep 19 2020 at 20:43
Anda dapat menggunakan ekspansi string:
RELEASE="${dir%%.*}"
Lihat demo Bash online :
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
Bagian ini ${dir%%.*}menghapus potongan teks terpanjang dari akhir (karena %%) hingga karakter titik pertama.
Jika Anda ingin menggunakan sed, Anda dapat menghapus semua string yang dimulai dengan (dan termasuk) titik pertama:
RELEASE="$(sed 's/\..*//' <<< $dir)"
Di sini, \..*cocokkan titik dan kemudian karakter nol atau lebih ke akhir string, dan kecocokan diganti dengan string kosong (dihapus) karena kanan kiri.
1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'