Jak zainstalować dos2unix w systemie Linux bez uprawnień administratora?
On 12 lutego, 2021 by admin $uname -a
Linux vm-** 2.6.32-573.8.1.el6.x86_64 #1 SMP Fri Sep 25 19:24:22 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
Pobrałem dos2unix-7.3.3-win32.zip i rozpakowałem go. W folderze bin z rozpakowanego pliku mam dos2unix.exe
Jak zainstalować dos2unix w Linuksie?
Nie mogę „t zrobić yum install dos2unix
ponieważ nie & nie mogę uzyskać uprawnień administratora.
Odpowiedź
Inne odpowiedzi pokazują, jak pobrać i skompilować dos2unix
, ale jeśli chcesz po prostu przekonwertować pliki z końcówek linii w stylu DOS (CR-LF) na zakończenia linii w stylu uniksowym, jest kilka innych podejść, które nie powinny obejmować instalowania czegokolwiek:
-
jeśli masz
tr
:tr -d "\r" < input > output
-
jeśli masz Perl:
perl -pi -e "s/\r\n/\n/g" input
(który konwertuje plik w miejscu , tak samo jak
dos2unix
) -
jeśli masz
sed
:sed -i "s/^M$//" input
gdzie „d naciśnij Ctrl V , a następnie Ctrl M , aby uzyskać
^M
.
Komentarze
- +1. Mam wiele plików w moim katalogu. Wykonuję
find . -type f -exec dos2unix {} \;
W Twoim przykładzie dlatr
ised
, jak mogę osiągnąć wiele plików? - W takim przypadku nie użyłbym ' wersji
tr
, ale zsed
,find . -type f -exec sed -i 's/^M$//' {} \;
powinno działać. Jeszcze lepiej,find . -type f -print 0 | xargs -0 sed -i 's/^M$//'
, który przetworzy jak najwięcej plików przy każdym uruchomieniused
. - A jeśli nie ' nie musisz przetwarzać plików w podkatalogach,
sed -i 's/^M$//' *
działałoby równie dobrze. - Według moich słów plik Mam 2 rekordy. Oba rekordy zawierają znak
^M
. Kiedy uruchamiamsed -i 's/^M$//' input > output
, mój plikoutput
zawiera 0 rekordów. Myślę, żesed
usuwa rekord zawierający^M
. Zamiast tego chcę, aby rekord został zachowany, ale tylko usunąć^M
. - Właśnie dowiedziałem się, że
sed -i 's/\r//' *
działa. Daj mi znać, czy istnieje lepszy sposób.
Odpowiedź
Po pierwsze, pobrałeś plik wykonywalny dos2unix dla systemu Windows (dos2unix-7.3.3- win32 .zip), co nie jest tym, czego chcesz, ponieważ używasz Linuksa.
Spróbuj pobrać kod źródłowy dos2unix dla Linuksa i wypakuj go do swojego katalogu domowego:
mkdir $HOME/bin/ tar -zxvf dos2unix-7.3.3-src.tar.gz # the exact name of the downloaded file may vary cd dos2unix-7.3.3 ./configure --prefix=$HOME/bin/ make make install
jeśli wszystko pójdzie dobrze, będziesz mógł znaleźć plik dos2unix gdzieś w swoim katalogu $ HOME / bin . możesz użyć tej nowej instalacji, wpisując
$ ~/bin/dos2unix windows_formatted_file.txt
Odpowiedź
Musisz pobierz kod źródłowy i skompiluj go.
Tutaj jest kod źródłowy.
Aby rozpakować, wykonaj: ( WERSJA odpowiada pobranej wersji)
tar xvf dos2unix-VERSION.tar.gz
Na koniec wykonaj:
make
Jeśli kompilacja się powiedzie, pojawi się plik wykonywalny o nazwach dos2unix i unix2dos.
Odpowiedź
Pobierz dos2unix-7.3.3.tar .gz.
tar xvzf dos2unix-7.3.3.tar.gz cd dos2unix-7.3.3 make install prefix=$HOME
Spowoduje to zainstalowanie dos2unix w $ HOME / bin /.
Aby uzyskać więcej informacji, zobacz INSTALL.txt.
Odpowiedź
Musisz pobrać określone RPM ze strony systemu operacyjnego. Na przykład w przypadku CentOS pobierz plik RPM z http://vault.centos.org/
Dodaj komentarz