Bash:
Wycinanie podłańcuchów
Jak to zrobić:
# Wyodrębnienie podciągu używając indeksów
text="Bash jest super!"
echo ${text:5:4} # wypisze 'jest'
# Wyodrębnienie podciągu od końca ciągu znaków
echo ${text: -6:5} # wypisze 'super'
# Użycie sztuczki z 'expr substr' do wyciągania podciągów
podciag=$(expr substr "$text" 6 4)
echo $podciag # również wypisze 'jest'
Głębsze zanurzenie
Wycinanie podciągów w Bashu ma długą historię – funkcjonalność ta była dostępna już w wersjach przed Bash 4. Pozwala to na obsługę zarówno prostych skryptów jak i złożonych skryptów do przetwarzania tekstu.
Alternatywnie, można użyć narzędzi zewnętrznych jak awk
, sed
, cut
, jeśli wymagane jest coś bardziej skomplikowanego lub potrzebujemy większej kontroli nad procesem.
Szczegóły implementacji w Bashu to głównie operacje na zmiennych typu string, które wspierają indeksację i mogą być stosunkowo wolne w porównaniu z dedykowanymi programami do przetwarzania tekstu. Niemniej, w wielu przypadkach są wystarczające i znacznie prostsze w użyciu.
Zobacz również:
- Bash String Manipulation
- Advanced Bash-Scripting Guide: String Operations
- Stack Overflow odpowiedzi dotyczące manipulacji ciągami znaków w Bashu