Dos2unix'i bir klasörün tüm içeriğine özyineli olarak nasıl uygulanır?


11

dos2unixKomutu bir klasördeki tüm dosyalara ve alt klasörlerine karşı çalışacak şekilde uygulamanın bir yolu var mı ? bunu kolaylaştıracak man dos2unixherhangi bir -rveya benzer seçenek göstermiyor mu?

Yanıtlar:


18

find /path -type f -print0 | xargs -0 dos2unix --


2
Endişelenmeyin, dos2unixvarsayılan olarak ikili dosyaları atlar.
Walf

3

İkili dosyaları ve gizli dosyaları atlamak benim için önemliydi:

Bu benim için iyi çalıştı:

find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k

Bunun anlamı şudur: gizli olmayan tüm dosyaları geçerli dizinde özyinelemeli olarak bulun, ardından grep'i kullanarak, tüm ikili olmayan (-I) boş olmayan dosyaları listeleyin, ardından her seferinde bir dosyaya xargs (yeni satırlarla ayrılmış) olarak ekleyin dos2unix ve orijinal zaman damgasını saklayın.

Ayrıca bakınız:

https://github.com/mdolidon/endlines


2

Dos2unix komutunuz aracılığıyla çalıştırmak istediğiniz bir dizin yapısındaki tüm dosyaları bulmak için find komutunu kullanabilirsiniz

find /path/to/the/files -type f -exec dos2unix {} \;

Bulmak için man sayfalarına bir göz atın, neyin değerlendirildiğini belirtmek için kullanabileceğiniz birçok seçenek var


Bu işe yaramadı.
Alex Kinman

2
Eğer dosya ağacının herhangi bir yerinde bir .git dizini varsa bu çok dikkatli olun ... yerel git depom bozuk.
Aaron_H

1

Bir joker karakter kullanın. Bunun gibi: (Eğer klasördeyseniz)

dos2unix *

veya klasörün dışındaysanız şunları yapın:

dos2unix /path/to/folder/*

1

Kullanma bash:

shopt -s globstar
dos2unix **

globstarShell seçeneği bashkullanımını sağlayan **topak. Bu aynı şekilde çalışır *ancak /yol adlarında eşleşir (bu nedenle alt dizinlerdeki adlarla da eşleşir ). Bu, alt dizinlerinde (binlerce değil) az sayıda dosya içeren bir dizinde çalışır.

İçinde zshve içinde yash( set -o extended-globiçinde yash), yapardın

dos2unix **/*
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.