Lub przewodnik wprowadzający do solidnej obsługi nazw plików i innych ciągów znaków przekazywanych w skryptach powłoki. Napisałem skrypt powłoki, który działa dobrze przez większość czasu. Ale dusi się na niektórych danych wejściowych (np. Na niektórych nazwach plików). Wystąpił problem, taki jak: Mam nazwę pliku zawierającą spację hello world, która została …
Chciałbym usunąć wszystkie początkowe i końcowe spacje i tabulatory z każdego wiersza wyniku. Czy istnieje proste narzędzie, do trimktórego mógłbym przesłać dane wyjściowe? Przykładowy plik: test space at back test space at front TAB at end TAB at front sequence of some space in the middle some empty lines with …
W Vimie, jeśli wkleję ten skrypt: #!/bin/sh VAR=1 while ((VAR < 10)) do echo "VAR1 is now $VAR" ((VAR = VAR +2)) done echo "finish" Otrzymuję te dziwne wyniki: #!/bin/sh #VAR=1 #while ((VAR < 10)) # do # echo "VAR1 is now $VAR" # ((VAR = VAR +2)) # done …
Jeśli wykonam sekwencję poleceń, takich jak: $ ls $ grep abc file.txt a następnie użyj klawisza strzałki w górę, aby uzyskać poprzedni, terminal pokaże ostatnie cmd (które jest greptutaj) Ale jeśli zrobię coś takiego: $ ls $ grep abc file.txt gdzie greppoprzedza się spacjami, naciśnięcie w górę daje ls, a …
Znalazłem mnóstwo stron, które wyjaśniają, jak git ostrzega cię o zmianie zakończenia linii, lub różne inne techniki, które zapobiegają zepsuciu całego pliku. Załóżmy, że jest już na to za późno - drzewo ma już zatwierdzenia, które przełączają zakończenia linii plików, więc git diffpokazuje odjęcie starego pliku, a następnie dodanie nowego …
To jest błąd, który otrzymuję i nie działa z powodu zmiennej, której wartość powinna wynosić 2 (otrzymuję to za pomocą a select * from tabel). Dostaję spacje w tej zmiennej. + 0 != 2 ./setjobs[19]: 0: not found. Jak usunąć wszystkie te spacje lub znak nowej linii z tej zmiennej? …
Czy jest .vimrcustawienie automatycznego usuwania końcowych białych znaków podczas zapisywania pliku? Idealnie (dla bezpieczeństwa) chciałbym mieć tę funkcję tylko dla niektórych plików, np *.rb
Korzystam z poniższego skryptu, aby przejść dwa dni wstecz, gdy skrypt uruchamia się o dwa dni w roku, a także sprawdzam pierwszy i drugi dzień każdego miesiąca i cofam się o dwa dni wstecz. if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else …
Widziałem przewodniki skryptów Bash sugerujące użycie tablicy do pracy z nazwami plików zawierającymi białe znaki. DashAsBinSh sugeruje jednak, że tablice nie są przenośne, dlatego szukam zgodnego z POSIX sposobu pracy z listami nazw plików, które mogą zawierać spacje. Chcę zmodyfikować poniższy przykładowy skrypt, aby to zrobił echo foo/target/a.jar foo/target/b.jar bar/target/lol …
Uczę się skryptowania powłoki i do tego używam HackerRank. Na sedtej samej stronie pojawia się pytanie : polecenie „Sed” nr 1 : Dla każdego wiersza w danym pliku wejściowym przekształć pierwsze wystąpienie słowa „the” za pomocą „this”. Wyszukiwanie i transformacja powinny uwzględniać wielkość liter. Po pierwsze próbowałem sed 's/the/this/' ale …
Biorąc pod uwagę te nazwy plików: $ ls -1 file file name otherfile bash sam doskonale sobie radzi z osadzonymi białymi znakami: $ for file in *; do echo "$file"; done file file name otherfile $ select file in *; do echo "$file"; done 1) file 2) file name 3) …
for i in $(xrandr); do echo "$i" ; done for i in "$(xrandr)"; do echo "$i"; done for i in "$(xrandr)"; do echo $i; done Rozumiem, dlaczego 1 różni się od 2. Ale dlaczego 3 daje inny wynik niż 2? Proszę wyjaśnić również wynik. Jak cytaty działają na nowych liniach?
Tworzę plik z polami rozdzielanymi tabulatorami. echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz > input Mam następujący skrypt o nazwie zsh.sh #!/usr/bin/env zsh while read line; do <<<$line cut -f 2 done < "$1" Testuję to. $ ./zsh.sh input bar bar To działa dobrze. Jednak gdy zmienię pierwszy wiersz, aby bashzamiast tego wywoływał , nie …
Próbuję wydrukować dwa ciągi znaków oddzielone TAB. Próbowałem: echo -e 'foo\tbar' printf '%s\t%s\n' foo bar Oba drukują: foo bar Gdzie biała spacja między nimi wynosi w rzeczywistości 5 spacji (zgodnie z wyborem wyjścia za pomocą myszy w Putty). Próbowałem również użyć CTRL + V i naciskając TAB podczas wpisywania polecenia, …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.