sort file
Komutu kullandığımızda , dosya içeriğini sıralı bir şekilde gösterir.
sort infile >outfile
ve sıralı çıktı "outfile" dosyasına alırsınız. Sonra orijinal "infile" silebilir ve her şey yoluna girecek.
sort file
Komutu kullandığımızda , dosya içeriğini sıralı bir şekilde gösterir.
sort infile >outfile
ve 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=FILE
tü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 sort
bilgi 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{,}
sort
Komut 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 . -o
Bir çı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 sort
olmadan -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 sort
komutu değerlendirebilir ve ardından orijinal dosyaya yeniden yönlendirebilirsiniz. Bu şekilde yerinde sıralama uygulayabilirsiniz.
Benzer şekilde, bu hileyi paste
satı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. -E
ve -s
vim'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 formatter
bir nanorc
giriş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
nanorc
mi kullanıyorsun ? Ah ironi.
file
aynı 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).