Pytania otagowane jako string

Manipulowanie ciągiem: wyodrębnianie części ciągu, zamiana tekstu, formatowanie do określonej szerokości itp.


4
Jak POSIX-ly policzyć liczbę wierszy w zmiennej typu string?
Wiem, że mogę to zrobić w Bash: wc -l <<< "${string_variable}" Zasadniczo wszystko, co znalazłem, dotyczyło <<<operatora Bash. Ale w powłoce POSIX <<<jest niezdefiniowany i od wielu godzin nie jestem w stanie znaleźć alternatywnego podejścia. Jestem pewien, że istnieje proste rozwiązanie tego problemu, ale niestety nie znalazłem do tej pory.

6
bash znajdź linie zaczynające się od łańcucha
Mam kilka plików i chcę znaleźć, który zawiera sekwencyjne linie zaczynające się od określonego ciągu. Na przykład dla następującego pliku: Aaaaaaaaaaaa Baaaaaaaaaaa Cxxxxxxxxx Cyyyyyyyyy Czzzzzzzzz Abbbbbbbbbbb Bbbbbbbbbbbb Caaaaaa Accccccccccc Bccccccccccc Cdddddd Ceeeeee Istnieje więcej niż jedna linia rozpoczynająca się od „C”, więc chcę, aby ten plik został znaleziony za pomocą …
10 bash  sed  grep  string 

5
Dopasowywanie wzorców dla nazw ścieżek w bash
Chcę działać na liście podkatalogów w katalogu. Rozważać: for x in x86-headers/*/C/populate.sh; do echo $x; done To daje x86-headers/elf/C/populate.sh x86-headers/gl/C/populate.sh x86-headers/gmp/C/populate.sh x86-headers/gnome2/C/populate.sh x86-headers/gtk2/C/populate.sh x86-headers/jni/C/populate.sh x86-headers/libc/C/populate.sh Ale chcę wartości, która odpowiada drugiej części ścieżki elf, glitp wiem jak rozebrać wiodącym x86-headers. for x in x86-headers/*/C/populate.sh; do i=${x##x86-headers/}; echo $i; done co …


2
Zbuduj polecenie dynamicznie
Pracuję nad skryptem i muszę tardynamicznie budować polecenie. Oto dwa przykłady ilustrujące to, co próbuję zrobić: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" echo -e "\n\nNEXT:\n\n" EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*") _tar="tar "`printf -- '%s ' "${EXCLUDE[@]}"`" -zcf test.tar.gz" …

4
Podziel ciąg na dwukropku w / bin / sh
Mój dashskrypt przyjmuje parametr w postaci hostname:portnp .: myhost:1234 Natomiast port jest opcjonalny, tj .: myhost Muszę odczytać hosta i port w osobne zmienne. W pierwszym przypadku mogę wykonać: HOST=${1%%:*} PORT=${1##*:} Ale to nie działa w drugim przypadku, gdy port został pominięty; echo ${1##*:}po prostu zwraca nazwę hosta zamiast pustego …
9 shell  string  dash 

5
Jak skrócić / path / to / file to / p / t / file
Szukam eleganckiej jednowarstwowej (np. awk), Która skróci ciąg ścieżki uniksowej, używając pierwszego znaku każdego poziomu nadrzędnego / pośredniego, ale pełnej nazwy basename. Łatwiej jest pokazać za pomocą przykładów: /path/to/file → /p/t/file /tmp → /tmp /foo/bar/.config/wizard_magic → /f/b/./wizard_magic /foo/bar/.config/wizard_magic→ /f/b/.c/wizard_magic W świetle dobrych punktów @ MichaelKjörling i @ChrisH poniżej, ten przykład …
9 sed  awk  string 

4
Jak zapewnić, że ciąg ma znak nowej linii, a jeśli tak, usuń go
Mam ciąg będący wynikiem operacji, nad którą nie mam kontroli. Kiedy drukuję tę zmienną za pomocą echo, otrzymuję: echo $myvar hello Jednak kiedy to zrobię if [ $myvar = "hello" ]; then echo they are equal else echo they are not equal fi Zawsze rozumiem, że nie są równi. Podejrzewam, …
9 bash  string 

2
Manipulowanie ciągiem szarpania rur
Przeczytałem kilka innych pytań dotyczących manipulacji ciągami bashowymi, ale wydaje się, że są to wyspecjalizowane aplikacje. Zasadniczo, czy jest sposób, aby zrobić poniższe prostsze? zamiast $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD coś jak $ echo 'hello world' | $"{-// /_}" | "${ -^^}" HELLO_WORLD Edytuj Jestem zainteresowany utrzymywaniem …

2
grep otaczające znaki dopasowania
Szukam znaleźć i zastąpić w gigantycznym zrzucie bazy danych i nie robi tego, co moim zdaniem powinno się zdarzyć. Chciałbym grep dla mojego ciągu docelowego w pliku, a następnie zobaczyć około 8 znaków otaczających (w zależności od tego może być konieczne dostosowanie tej liczby). Jak mogę to zrobić? Powodem, dla …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.