Powłoki, takie jak Bash i Zsh, zamieniają symbol wieloznaczny na argumenty, tyle argumentów ile odpowiada wzorowi: $ echo *.txt 1.txt 2.txt 3.txt Ale co jeśli chcę tylko zwrócić pierwszy mecz, a nie wszystkie mecze? $ echo *.txt 1.txt Nie mam nic przeciwko rozwiązaniom specyficznym dla powłoki, ale chciałbym rozwiązania, które …
W artykule Wikipedii na temat wyrażeń regularnych wydaje się, że [[:digit:]]= [0-9]= \d. W jakich okolicznościach nie są one równe? Jaka jest różnica? Po niektórych badaniach wydaje mi się, że jedną różnicą jest to, że wyrażenie w [:expr:]nawiasach zależy od ustawień regionalnych.
Czy jest jakaś różnica między tymi dwoma. [[ $a == z* ]] i [ $a == z* ] Czy mogę podać przykład, w którym miałyby różne wyniki? Ponadto, czym [[ ]]różni się działanie [ ]?
Załóżmy, że mam taką strukturę katalogów: $ [~ / ćwiczenie] ls a / b / c / d / Teraz chcę utworzyć katalog tmp1we wszystkich podkatalogach practicei robię to: $ [~ / praktyka] mkdir * / tmp1 mkdir: nie można utworzyć katalogu `* / tmp1 ': Brak takiego pliku lub …
Będzie to łatwe, ale w moich wspomnieniach, kiedy skryptowanie powłoki używa podwójnych cudzysłowów, pozwala na rozszerzanie globowania i zmiennych. Ale w następującym kodzie: #!/bin/sh echo *.sh echo "*.sh" echo '*.sh' echo $LANG echo "$LANG" echo '$LANG' Otrzymuję ten wynik: bob.sh redeployJboss.sh *.sh *.sh en_US.utf8 en_US.utf8 $LANG Więc pojedyncze cytowanie zapobiega …
Muszę rekurencyjnie usunąć wszystkie pliki ze wszystkich podkatalogów, w których nazwa pliku zawiera liczbę, po której następuje „x”, a następnie co najmniej dwa razy. Przykład: Chciałbym usunąć te pliki: 'aaa-12x123-123x12.jpg' 'aaa-12x12-123x12-12x123.jpg' Ale NIE chcę usuwać tych plików: 'aaa.jpg' 'aaa-12x12.jpg' 'aaaxaaa-123x123.jpg' 'aaaxaaa-aaaxaaa.jpg' Jak mogę to zrobić (z powłoki bash)
W systemie plików, w którym nazwy plików znajdują się w UTF-8, mam plik o błędnej nazwie; jest wyświetlany jako :, D�sinstallerrzeczywista nazwa według zsh D$'\351'sinstaller:, Latin1 dla Désinstaller, sam francuski barbarzyństwo dla „odinstaluj”. Zsh nie [[ $file =~ '^.*$' ]]pasowałby do tego, ale pasowałby do niego globbingiem *- takiego zachowania …
Ostatnio natknąłem się na plik, którego nazwa zaczyna się od znaku „.”. Chciałem skopiować ten plik, załadować go ffmpegi odwołać się do niego na różne inne sposoby w terminalu. Zwykle automatycznie uzupełniam dziwne nazwy plików, ale to się nie udaje, ponieważ nie mogę nawet wpisać pierwszej litery. Nie chcę przełączać …
Próbuję napisać ifinstrukcję, aby sprawdzić, czy są jakieś pliki pasujące do określonego wzorca. Jeśli w katalogu znajduje się plik tekstowy, powinien on uruchomić dany skrypt. Mój kod obecnie: if [ -f /*.txt ]; then ./script fi Proszę podać kilka pomysłów; Chcę uruchomić skrypt tylko, jeśli jest .txtw katalogu.
Mam tę listę plików pdf w katalogu: c0.pdf c12.pdf c15.pdf c18.pdf c20.pdf c4.pdf c7.pdf c10.pdf c13.pdf c16.pdf c19.pdf c2.pdf c5.pdf c8.pdf c11.pdf c14.pdf c17.pdf c1.pdf c3.pdf c6.pdf c9.pdf Chcę połączyć je za pomocą ghostscript w kolejności numerycznej (podobnej do tej): gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf Ale kolejność …
Przypadkowo zapomniałem podać miejsce docelowe przed naciśnięciem klawisza Return. Gdzie mv ./*bez podania miejsca docelowego przenieść pliki i katalogi z bieżącego katalogu?
Jak prawidłowo wykonać forpętlę w odwrotnej kolejności? for f in /var/logs/foo*.log; do bar "$f" done Potrzebuję rozwiązania, które nie łamie się z funky w nazwach plików.
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.