Więcej
Wyciąganie podłańcuchów w Bashu
Biorąc pod uwagę nazwę pliku w postaci someletters_12345_moreleters.ext
, chcę wyodrębnić 5 cyfr i umieścić je w zmiennej.
Tak więc, aby podkreślić punkt, mam nazwę pliku z x liczbą znaków, a następnie pięciocyfrową sekwencję otoczoną pojedynczym podkreśleniem po obu stronach, a następnie inny zestaw x liczby znaków. Chcę pobrać pięciocyfrowy numer i umieścić go w zmiennej.
Jestem bardzo zainteresowany liczbą różnych sposobów, na jakie można to osiągnąć.
680
3
Użyj cut:
Bardziej ogólne:
Generyczne rozwiązanie, gdzie numer może być w dowolnym miejscu nazwy pliku, wykorzystujące pierwszy z takich ciągów:
Inne rozwiązanie, aby wyodrębnić dokładnie część zmiennej:
Jeśli nazwa pliku zawsze ma format
stuff_digits_...
możesz użyć awk:Jeszcze inne rozwiązanie, aby usunąć wszystko oprócz cyfr, użyj
Istnieje również wbudowane polecenie bash 'expr':