Ben TXTFiles Bir grup (hem önünde hem de arkasında bir boşluk her zaman vardır çünkü bir kelime olarak kabul edilebilir tüm hatlar için ::
bir dize :::
değiştirmeye çalışıyorumtüm dosyaların bir dize değiştirin - Unix
aşağıda gibi piton ile bunu yapabilir, ama unix terminal vasıtasıyla bunu yapmanın daha az 'aşırı öldürme'/dolambaçlı yol var? (Birçok borular izin)
indir = "./td/"
outdir = './od/'
for infile in glob.glob(os.path.join(indir,"*")):
_,FILENAME = os.path.split()
for l in codecs.open(infile,'r','utf8').readlines():
l = l.replace(":::","::").strip()
outfile = codecs.open(os.path.join(outdir,FILENAME),'a+','utf8')
print>>outfile, l
Sonra ben hiç hareket od'dan td'ye dosyalar mv ./od/* ./td/*
basit ve çok daha verimli. Sonunda '\' yerine '+' seçeneğini kullanırsanız, 'find' sürümünü daha verimli hale getirebilirsiniz. Dosya adlarını işlemek için ls kullanmak üzere – Idelic
-1. Açık olan “daha basit” çözümü (sed - t ... td/*. C) (gerekirse bir globstar eklenir) eksik olanı için bir tane daha eklerim. Ve find -name seçeneğinde dizin isimlerini kullanmak için bir tane daha (bakınız: http://linux.about.com/od/commands/l/blcmdl1_find.htm) ... Bu nasıl 4 oy aldı? – Sorin
@Sorin: Kaynak dosya adlarında özel karakterler bulundurmadığımı kabul ediyorum (bunları kullananların ne aldıklarını hakettiklerini anladım), fakat bundan başka ben de problemi göremiyorum. Td/*. C 'öneriniz için Kudos olsa da, işe yarayacağını bilmiyordum; Daha fazla nezaketle önerilmiş olsaydı, cevabımı (atıf ile) ekledim. – Beta