LS, ale wykluczają przyrostki


0

Mam pliki

foo.mp3

bar baz.mp3

bar baz 2.mp3

Jakie polecenie wyświetli następujące polecenie?

bla

bar \ baz

bar \ baz \ 2

Wiem, że ls -1bradzi sobie z ucieczkami, ale jak mam je wyciąć .mp3na końcu?

Odpowiedzi:


0

ls -1 | cut -d "." -f 1

odcina pierwszy okres i wszystko po nim. Traktuje kropki jako separator i wyświetla tylko tekst w pierwszym polu, przed każdym wystąpieniem separatora. Jeśli twoje nazwy plików mają maksymalnie tylko jedno rozszerzenie (zero lub jeden okres łącznie), może to działać (tak proste).

ls -1b | cut -d "." -f 1

zamienia spacje na „\” w systemie Linux. Pamiętaj jednak, że w tym pytaniu masz również tag Unix. I opcja „-b” w „ls” niekoniecznie jest obsługiwana przez wszystkie odmiany Uniksa. (Nie jest obsługiwany tak szeroko jak -l (długi) lub -1 (pojedyncza kolumna).


Powoduje to również wycinanie ukrytych plików (zaczynających się od a .). ls -lanadal wyświetla informacje, po prostu brak części nazwy pliku
Xen2050

1

Mam to do pracy ls -1b | sed s/\.mp3//


Upvoting. Uznałem, że jest lepszy sposób, ale wtedy byłem bardziej zainteresowany udzieleniem użytecznej odpowiedzi od razu. ls -1 | sed s/\\.mp3$//działa ładnie. $ Pomaga wyeliminować wykluczenie „.mp3.zip”, a dwa ukośniki odwrotne powinny być użyte, jeśli twoja powłoka używa ukośnika odwrotnego jako znaku ucieczki, co jest powszechne w Uniksie. Jedynym minusem jest to, że sed jest obsługiwany przez mniej różnych uniksowych wersji, ale sed jest dość powszechny i ​​warto go zdobyć. Czy też trjest wykonalna opcja?
TOOGAM
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.