Як перетворити всі файли в папці в інший рядок, що закінчується? (у Windows)


15

Як конвертувати всі файли в папці в інший рядок, що закінчується (Linux чи mac)? Я використовую Windows.

Зараз мій підхід полягає у використанні Winscp для копіювання у вікно Linux, а потім рекурсивно запускати dos2unix у папці.


Відповіді:


17

Встановлено Cygwin та Dos2unix в Cygwin

find . -type f -exec dos2unix {} \;

1
ви можете захотіти, -maxdepth 1щоб воно не
пройшло

1
Дякую за пораду. Але мій випадок використання вимагає всіх файлів, включаючи ті, що знаходяться в підпапках ..
Satish

Установка Cygwin просто для запуску однієї програми мені здається великою надмірністю. Я б запропонував просто скористатися версією DOS тієї самої програми, а потім однорядковою командою в оболонці, щоб запустити її проти всіх файлів.
Річард

1
@Richard: Правда, але багато хто з нас вже мають Cygwin, і це інструменти. Ви також можете спробувати. Це зробить вашу Windows більш Linux-у та, отже, більш терпимою. Крім того, вам не потрібно шукати специфічні для Windows рішення ваших проблем із командним рядком.
Джон Ред

5

Ви можете встановити git bash замість cygwin32 (або подібного) у Windows. Він поставляється з декількома Unix-подібних команд (наприклад, find, dos2unixі т.д.,) в bashрежимі емуляції. Після встановлення, перетворення файлів з Windows в кінці файлів Unix має бути простим.

Скажімо, у вас є файли (що закінчуються суфіксом .java ) у дереві папок під назвою src, і ви хочете конвертувати їх закінчення з Windows в Unix.

  1. Знайдіть src у Windows Explorer.
  2. Клацніть правою кнопкою миші та відкрийте Git Bash у цій папці з контекстного меню Windows.
  3. Run: find . -name "*.java" -exec dos2unix {} \;.

І це все!


0

Ваша відповідь на використання dos2unix та unix2dos - чудова.

Ось ще один спосіб, заснований на вашій відповіді.

Ви можете використовувати Gnuwin32, хоча досить смішно, пакет Gnuwin32, який містить команди, є Cygutils http://gnuwin32.sourceforge.net/packages/cygutils.htm, тож ви отримаєте unix2dos.exe і dos2unix.exe в C: \ Program Files .... \ GnuWin32 \ bin та з тим у вашій ПАТІ.

C:\somedir>dir<ENTER>
 Volume in drive C has no label.
 Volume Serial Number is DC46-3C68

 Directory of C:\somedir

05/23/2014  01:10 AM    <DIR>          .
05/23/2014  01:10 AM    <DIR>          ..
05/23/2014  01:10 AM                 4 file1
               1 File(s)              4 bytes
               3 Dir(s)  196,129,951,744 bytes free

Do this command to go from dos2unix
C:\somedir>for %f in (*) do dos2unix %f <ENTER>

C:\somedir>dos2unix file1 <-- This runs automatically from you doing the above command
file1: done.

And do this command to go from unix2dos
C:\somedir>for %f in (*) do unix2dos %f <ENTER>

C:\somedir>unix2dos file1 <-- This runs automatically from you doing the above command
file1: done.

C:\somedir>

І щоб перевірити, чи буде ваш%% робити те, що ви хочете, тоді використовуйте ехо або @ECHO, наприклад,
для% f в (*) зробіть @ECHO unix2dos% f

І ви можете використовувати xxd для створення файлів і перевірки їх перетворення. xxd для Windows поставляється з VIM C: \ Program "" Файли \ vim \ vim74 \ xxd.exe

so, i'll create a file, I like this style of command is it allows me to 
create whateer file I want, a dos one or a unix one or anything.  
61 is hex for 'a'       
C:\somedir>echo 610d0a| xxd -r -p >testfile <ENTER>

check the file raw, in its hex
C:\somedir>cat testfile | xxd -p <ENTER>
610d0a

check the file in ascii or unicode
C:\somedir>cat testfile <ENTER>
a

and the following commands just prove that dos2unix and unix2dos work/are working fine.  
C:\somedir>dos2unix testfile <ENTER>
testfile: done.

C:\somedir>cat testfile | xxd -p <ENTER>
610a

C:\somedir>unix2dos testfile <ENTER>
testfile: done.

C:\somedir>cat testfile | xxd -p <ENTER>
610d0a

C:\somedir>

Зауважте - також у разі використання дистрибутива * nix, дивлячись на apt-get (apt-кеш-пошук dos2unix), пакет дійсно (можливо, не дивно!) dos2unix (так встановлено з apt-get install dos2unix) і що включає разом з dos2unix виконуваний файл, виконуваний файл Unix2dos. Якщо ви шукаєте apt-кеш-пошук unix2dos, він показує пакет dos2unix.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.