Dosyayı, yeni satır simgesinden ayrı olarak birden çok küçük dosyaya bölün


13

Dosyayı yeni satır simgesine göre ayıran bir yardımcı program var mı? örneğin bir dosya aşağıdaki satırları içeriyorsa,

aa
bbb
cccc

3 dosyaya bölmek istersem, istenen çıktı:

aa, bbbVe cccc(3 farklı dosyada)

splitKomutu zaten kontrol ettim, sadece dosya boyutlarına göre kesiyorum, istediğimi değil.

Kendime bir yardımcı program yazmazsam kullanılacak standart bir araç var mı?


dosya adı ne olmalı?
Rahul Patil

her satırın dosya oluşturmak ister misiniz? Ben doğruyum ?
Rahul Patil

Yanıtlar:


14

Ben bir şey eksik sürece, switch splitkullanırsanız satır bölünür -l:

   -l, --lines=NUMBER
          put NUMBER lines per output file

yani

split -l 1 inputfile

ne istersen yapmalısın.


4
awk '{print > $0".txt" }'  inputfile

giriş satırında bu satırların içeriğinden sonra adlandırılan benzersiz bir satır başına bir dosya oluşturur ( .txtuzantıyla). Ancak, eşzamanlı açık dosya sınırına ulaşıldığında, bazı awkuygulamaların başarısız olacağını unutmayın.

Veya

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

Numaralı çıktı dosyalarına sahip olmak.


Çıktı dosyasını yazıldıktan sonra kapatmak () isteyebilirsiniz, aksi takdirde çoğu awk uygulamasında maksimum sayıda açık dosya sınırıyla karşılaşırsınız.
Stéphane Chazelas

farkında değil .. bunu benim için yapabilir misin? teşekkürler ..
Rahul Patil

3
A=0
while IFS= read -r LINE ; do
  printf '%s\n' "$LINE" > newfile$A
  (( A++ ))
done < "$INPUTFILE"
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.