sort fileKomutu kullandığımızda , dosya içeriğini sıralı bir şekilde gösterir.
sort infile >outfileve sıralı çıktı "outfile" dosyasına alırsınız. Sonra orijinal "infile" silebilir ve her şey yoluna girecek.
sort fileKomutu kullandığımızda , dosya içeriğini sıralı bir şekilde gösterir.
sort infile >outfileve sıralı çıktı "outfile" dosyasına alırsınız. Sonra orijinal "infile" silebilir ve her şey yoluna girecek.
Yanıtlar:
Sıralanan çıktıyı yeniden yönlendirmek için dosya yeniden yönlendirmeyi kullanabilirsiniz:
sort input-file > output_file
Yoksa kullanabilirsiniz -o, --output=FILEtür seçenek aynı giriş ve çıkış dosyası belirtmek için:
sort -o file file
Not: Yaygın bir hata, çıktıyı aynı giriş dosyasına (örneğin sort file > file) yönlendirmeye çalışmaktır . Kabuk yeniden yönlendirmeleri ( sıralama (1) programını değil) ve girdi dosyası (çıktı olarak da) sıralama (1) programına okuma fırsatı vermeden hemen önce silineceğinden bu çalışmaz .
GNU sortbilgi sayfasında: -o OUTPUT-FILE' ÇIKIŞ-FILE yerine standart çıkışa --output = ÇIKIŞ-DOSYA' Yaz çıkışı. Daha yeni sistemlerde, herhangi bir girdi dosyasından önce -o' cannot appear after an input file if POSIXLY_CORRECT 'ayarlanır, örn., sort F -o F'. Portable scripts should specify -O OUTPUT-FILE'.
sort -o file{,}
sortKomut varsayılan olarak standart çıkışa sıralama işleminin sonucunu yazdırır. "Yerinde" bir sıralama elde etmek için şunları yapabilirsiniz:
sort -o file file
Bu file, sıralı çıktı ile girdinin üzerine yazar . -oBir çıkış belirtmek için kullanılan anahtar, POSIX tarafından tanımlanmıştır böylece tüm sürümünde mevcut olmalıdır, sort:
-o Standart çıktı yerine kullanılacak çıktı dosyasının adını belirtin. Bu dosya giriş dosyalarından biriyle aynı olabilir.
Eğer bir sürümünü olması talihsiz yeterince iseniz sortolmadan -o(anahtar Luis onların var olduğunu bana garanti), standart bir şekilde bir "yerinde" düzenlemeyi elde edebilirsiniz:
sort file > tmp && mv tmp file
sort file | sponge file
Bu aşağıdaki Fedora paketindedir:
moreutils : Additional unix utilities
Repo : fedora
Matched from:
Filename : /usr/bin/sponge
sudo apt install moreutils
Dosyayı yerinde sıralamak için şunu deneyin:
echo "$(sort your_file)" > your_file
Diğer yanıtlarda açıklandığı gibi, çıktıyı doğrudan giriş dosyasına yönlendiremezsiniz. Ancak önce sortkomutu değerlendirebilir ve ardından orijinal dosyaya yeniden yönlendirebilirsiniz. Bu şekilde yerinde sıralama uygulayabilirsiniz.
Benzer şekilde, bu hileyi pastesatır bazında ekleme uygulamak gibi diğer komutlara da uygulayabilirsiniz .
İşte (ab) 'nin kullandığı bir yaklaşım vim:
vim -c :sort -c :wq -E -s "${filename}"
Bölüm -c :sort -c :wq, dosya açıldıktan sonra vim komutlarını çağırır. -Eve -svim'in terminale çekmeyen bir "başsız" modda çalışması için gereklidir.
Bunun, sort -o "${filename}" "${filename}"dosya adı argümanını yalnızca bir kez alması dışında , yaklaşım üzerinde neredeyse hiçbir faydası yoktur .
Bu, dosyalar için formatterbir nanorcgirişe bir yönerge uygulamak için benim için yararlı oldu .gitignore. İşte bunun için kullandım:
syntax "gitignore" "\.gitignore$"
formatter vim -c :sort -c :wq -E -s
nanorcmi kullanıyorsun ? Ah ironi.
fileaynı dosyanın sıralı içeriği ile değiştirerek yerine sıralamak ister misiniz ? Sorunuzun şu anda belirtildiği şekilde, hiçbir şey yapmamak doğru bir cevaptır (herhangi bir çıktı istemezsiniz, bu yüzden hiçbir şey yapmayın).