Mam taki ciąg:
|abcdefg|
I chcę uzyskać nowy ciąg wywoływany w jakiś sposób (np. Ciąg 2) z oryginalnym ciągiem bez dwóch |
znaków na początku i na końcu, aby mieć to:
abcdefg
Czy to możliwe w bash?
bash
command-line
scripts
Matteo Pagliazzi
źródło
źródło
awk -F\| '{ print $2 }' <<<"|string|"
awk
rozwiązania. Muszę się nauczyćawk
.IFS='|' read string2 <<< $string
:)"${string:1:-1}"
man bash
.Oto rozwiązanie niezależne od długości łańcucha (bash):
źródło
Zejście z kilku wymienionych tutaj postów wydaje się najprostszym sposobem, aby to zrobić:
edycja: działa na ubuntu z bash 4.2; nie działa na centOS z bash 4.1
źródło
Innym sposobem jest użycie poleceń
head
itail
poleceń:źródło
[something something]
z celem wycinania nawiasów, więcecho "[something something]" | tail -c +2 | head -c -2
wypracowałem. Dzięki za wskazówkę!echo -n "|abcdefg|" | tail -c +2 | head -c -1
. Nie jestem pewien, dlaczego moje zmiany zostały odrzucone ... Szczerze mówiąc, to bardzo smutne. Zobaczman head
więcej informacjiI kolejny:
źródło
Możesz także użyć sed, aby usunąć | nie tylko odwołując się do samego symbolu, ale także używając odniesień pozycyjnych jak w:
Gdzie „:” są ogranicznikami (możesz je zastąpić / lub dowolnym znakiem spoza zapytania, zrobi to dowolny znak następujący po s) Tutaj ^ (karetka) oznacza na początku ciągu wejściowego, a $ (dolar) oznacza na końcu. The. (punkt), że jest po karetce, a ten, który jest przed znakiem dolara reprezentuje pojedynczy znak. Innymi słowy, usuwamy pierwszy i ostatni znak. Pamiętaj, że spowoduje to usunięcie dowolnych znaków, nawet jeśli | nie jest obecny w ciągu.
DAWNY:
źródło
funkcja powłoki
Trochę bardziej szczegółowe podejście, ale działa na każdym rodzaju pierwszej i ostatniej postaci, nie musi być takie samo. Podstawową ideą jest to, że bierzemy zmienną, odczytujemy ją znak po znaku i dodajemy tylko te, które chcemy do nowej zmiennej
Oto cały ten pomysł sformatowany w przyjemną funkcję
A oto ta sama funkcja w akcji:
Pyton
lub w wierszu poleceń:
AWK
Rubin
źródło
Małe i uniwersalne rozwiązanie:
Specjalne w tym przypadku i pozwalające, aby „|” postać może tam być lub nie:
źródło
Od http://tldp.org/LDP/abs/html/parameter-substitution.html
źródło