cara mendapatkan jumlah variabel pertama
Saya punya variabel:
STR="My horse weighs 3000 kg but the car weighs more"
STR="Maruska found 000011 mushrooms but only 001 was not with meat"
STR="Yesterday I almost won the lottery 0000020 CZK but in the end it was only 05 CZK"
Saya perlu mendapatkan nomornya:
3000
11
20
Inilah salah satu cara untuk melakukannya:
Uji:
sumber
sed
pada akhirnya? Sepertinya sebelum masuk ke sed kita sudah memiliki hasil yang kita inginkan.000011
yang harus Anda hapus nol leadings Tetapi Anda dapat menyederhanakan dengan mencocokkan[1-9][0-9]*
yang akan menghapus nol terkemuka dari awal:echo $STR | grep -o -E '[1-9][0-9]*'
Jika implementasi
grep
Anda tidak memiliki-o
atau jika Anda tidak menggunakan Bash, Anda dapat melakukan hal berikut:sumber
sumber
Saya telah meletakkan string Anda dalam array sehingga dapat dengan mudah diulang untuk demonstrasi ini.
Ini menggunakan pencocokan ekspresi reguler bawaan Bash.
Hanya diperlukan pola yang sangat sederhana. Dianjurkan untuk menggunakan variabel untuk menahan pola daripada memasukkannya secara langsung dalam tes pertandingan. Ini penting untuk pola yang lebih kompleks.
Saya menyertakan tanda kurung siku hanya untuk mematikan angka secara visual.
Keluaran:
Untuk mendapatkan angka tanpa nol terkemuka, cara termudah adalah dengan memaksa konversi basis-10.
Mengganti itu, output tampak seperti apa yang Anda minta:
sumber
Cari ekspresi reguler dan
man grep
.dan untuk menghapus angka nol di depan, perlakukan sebagai angka:
sumber