Czy mogę otworzyć plik tekstowy w podglądzie z terminala?

12

Wiem, że mogę otworzyć plik za pomocą zewnętrznego programu z Terminalu openi działa to w przypadku większości aplikacji. Jednak gdy próbuję użyć polecenia takiego open -a Preview info.txt, uruchamia się podgląd, ale plik nie jest otwierany.

Jestem na Mavericks 10.10.2.

Czy istnieje sposób użycia openpolecenia (lub dowolnego innego wbudowanego polecenia), aby faktycznie otworzyć plik w Preview z terminala?

Ben
źródło
Preview nie może otwierać plików tekstowych, ale polecenie open -a Preview photo.jpgdziała dla mnie, otwiera obraz w Preview.
Lyes

Odpowiedzi:

12

Podgląd działa tylko z plikami PDF i niektórymi plikami obrazów (png, jpg, gif, tiff, bmp), więc nie można otworzyć pliku tekstowego w podglądzie.

Aby otworzyć plik info.txt z terminala, musisz wybrać aplikację, która może otwierać pliki tekstowe, takie jak TextEdit lub dowolny inny edytor tekstu.

Możesz także użyć open -e file, aby otworzyć dowolny plik za pomocą TextEdit.

leandrojmp
źródło
Jeśli nie chcesz ryzykować edycji pliku, spróbuj open -a Safari info.txt.
lhf
1
Nie sądzę, żeby pytanie dotyczyło otwarcia pliku tekstowego. Nadal pojawia się pytanie, jak otworzyć plik pdf w Preview z terminala? . Nie odpowiedziałeś na to pytanie.
Walter,
1
Nie ma pytania na temat „jak otworzyć plik pdf w podglądzie”, jak stwierdził użytkownik w swoim przykładzie, wiedział już, jak otwierać pliki w podglądzie z terminala, ale nie rozumiał, dlaczego to nie działało, gdy próbowano otwórz plik txt. Właśnie odpowiedziałem, wyjaśniając, jakie pliki można otworzyć za pomocą Preview i jak otworzyć dowolny plik z terminala za pomocą domyślnego edytora tekstu. Również inni użytkownicy odpowiedzieli tak samo, używając innego przykładu z plikiem obrazu. Ale masz rację, mógłbym odpowiedzieć w lepszy sposób.
leandrojmp
5

NB - Jeśli są jeszcze jakieś pytania dotyczące tej odpowiedzi, prosimy o komentarz.

AKTUALIZACJA

Nie ma nic złego w innych odpowiedziach, ta wykorzystuje komendę systemową, aby przekonwertować plik tekstowy na zgodny typ pliku dla podglądu (np. PDF).

Biorąc pod uwagę przykładowy plik, możesz uruchomić:

cupsfilter info.txt > info.pdf

(aby ukryć użycie danych wyjściowych debugowania cupsfilter info.txt > info.pdf 2> /dev/null)

Po czym można zastosować oryginalną odpowiedź, aby otworzyć nowy info.pdfplik w podglądzie. Możesz dowiedzieć się więcej, biegając man cupsfilter. Wierzę, że to po prostu ujawnia podstawową funkcję Zapisz jako PDF, która istnieje w systemie drukowania CUPS.

( Źródło )

do tego

Jak zauważono w komentarzach, wystarczy po prostu potokować polecenie, aby otworzyć plik bezpośrednio w podglądzie. To działało dla mnie:

cupsfilter info.txt 2> /dev/null | open -f -a Preview

(Oryginalna odpowiedź)

Aby otworzyć obsługiwany plik podglądu z terminala, taki jak pdf, png, jpg, gif, tiff, bmp:

open -a Preview <nameOfSupportedFileType>

Na przykład:

open -a Preview [email protected]

Otwiera png z bieżącego folderu w podglądzie.

Tommie C.
źródło
1
Ładny! Próbowałem, cupsfilterale nie przyszło mi do głowy przekierować stderr (doh!). Dzięki przekierowaniu możesz opencupsfilter info.txt 2> /dev/null | open -f -a /Applications/Preview.app
John N
2

Jest, ale najpierw musisz przekonwertować plik na PostScript lub PDF. Na przykład mam funkcję, pmanktóra działa dokładnie tak jak zwykła man, ale otwiera manstronę w Preview.app:

pman () 
{ 
    man -t $* | open -f -a /Applications/Preview.app
}

Ta -topcja mówi, manże dane wyjściowe muszą być sformatowane (przy użyciu groff) jako PostScript.

Chcesz otworzyć plik tekstowy w Preview.app. Do etapu konwersji do formatu PDF używam paps, który zainstalowałem brew:

brew install paps

Po tym to proste!

paps info.txt | open -f -a /Applications/Preview.app

Zostanie otwarte info.txtw podglądzie. Jeśli często to robisz, prawdopodobnie będziesz chciał utworzyć funkcję (w swoim ~/.bash_profilelub podobnym):

preview ()
{
    if [ -z "$*" ]; then
        echo "Usage: preview [FILE]"
    else
        paps $1 | open -f -a /Applications/Preview.app
    fi
}
complete -f -X '!*.txt' preview
John N.
źródło