Özet
rs [-[csCS][x] [kKgGw][N] tTeEnyjhHmz] [satır [sütun]]
Açıklama
rs yardımcı programı standart girdiyi okur, her satırı bir dizideki boşluklarla ayrılmış öğeler olarak yorumlar, diziyi seçeneklere göre dönüştürür ve standart çıktıya yazar. Herhangi bir argüman verilmediğinde akış girdisini terminalde görüntülemeye uygun sütunlu bir biçime dönüştürür.
Girdi dizisinin boyutu, satır sayısından ve ilk satırdaki sütun sayısından çıkarılır. Bu boyut elverişsizse -k seçeneğiyle girdinin bir kısmı atlanarak daha kullanışlı bir boyut elde edilebilir. Diğer seçenekler, girdi sütunlarının yorumlanmasını denetler.
Çıktı dizisinin boyutu, pozitif tam sayılar olması gereken satır ve sütun belirtimlerinden etkilenir. Bunlardan yalnızca biri pozitif tam sayı ise rs, tüm verileri sığdıracak şekilde diğeri için bir değer hesaplar. Gerektiğinde eksik veriler seçenekler tarafından belirtilen şekilde tamamlanır ve fazla veriler silinir. Satırların ve sütunların transpoze edilmesi de dahil olmak üzere çıktı sütunlarının sunumunu denetleyen seçenekler vardır.
Seçenekler
-cx: Girdi sütunları tek birxkarakteriyle sınırlandırılır.xbelirtilmezse^I(Tab) kabul edilir.-sx:-cseçeneğine benzer, ancakxkarakterinin en büyük dizilimleri sınırlayıcı olarak kabul edilir.-Cx: Çıktı sütunları tek birxkarakteriyle sınırlandırılır.xbelirtilmezse^Ikabul edilir.-Sx:-Cseçeneğine benzer, ancak dolguluxdizilimleri sınırlayıcı olarak kabul edilir.-t: Çıktı dizisinin satırlarını, girdi dizisinin sütunlarını kullanarak doldurur; yanisatırvesütunözelliklerini gözeterek girdinin transpozunu alır.-T: Herhangi birsatırveyasütunözelliğini yok sayarak girdinin saf transpozunu yazdırır.-kN: Girdinin ilkNsatırını yok sayar.-KN:-kseçeneği gibidir, ancak yok sayılan satırları yazdırır.-gN: Normalde 2 olan sütunlar arası boşluk (gutter width) genişliğiniNolarak alır.-GN: Sütunlar arası boşluk genişliğine maksimum sütun genişliğinin yüzdeN'sini ekler.-e: Girdinin her satırını bir dizi öğesi (entry) olarak kabul eder.-n: İlk satırdan daha az öğeye sahip satırlarda, satırı doldurmak için boş (null) öğeler kullanır. Normalde eksik öğeler girdinin bir sonraki satırından alınır.-y: Çıktı boyutlarını hazırlamak için çok az öğe varsa, girdiyi baştan itibaren tekrarlayarak (recycling) çıktıyı doldurur. Normalde çıktı boşluklarla doldurulur.-h: Girdi dizisinin boyutlarını yazdırır ve başka hiçbir şey yapmaz. Boyut yalnızca satır sayısı ve ilk satırdaki öğe sayısıdır.-H:-hseçeneği gibidir, ancak her satırın uzunluğunu da yazdırır.-j: Öğeleri sütunlar içinde sağa yaslar.-wN: Normalde 80 olan ekran genişliğini, pozitif bir tam sayı olanNolarak alır.-m: Çıktı dizisinin sonlarındaki fazla sınırlayıcıları kırpmaz.-z: Sütun genişliklerini, içlerinde görünen en büyük öğelere sığacak şekilde ayarlar.
Hiçbir argüman verilmediğinde rs, girdisinin transpozunu alır ve yok sayılmayan ilk satır ekran genişliğinden daha uzun olmadığı sürece girdi satırı başına bir dizi öğesi varsayar. Sayısal argüman alan seçenek harfleri, aksi belirtilmedikçe belirtilmeyen sayıları sıfır olarak yorumlar.
Örnekler
rs, belirli programların akış çıktısını kullanışlı bir pencere biçimine dönüştürmek için filtre olarak kullanılabilir. Örneğin spell(1), du(1), file(1), look(1), nm(1), who(1) ve wc(1) çıktılarıyla kullanılabilir:
who | rs
Bu işlev ls(1) programına dahil edilmiştir, ancak benzer çıktıya sahip çoğu program için rs yeterlidir.
Akış girdisini vektör çıktısına dönüştürmek ve tekrar geri almak için:
rs 1 0 | rs 0 1
1 ile 100 arasında rastgele sayılardan oluşan 10'a 10'luk bir dizi ve bunun transpozu şu şekilde üretilebilir:
jot -r 100 | rs 10 10 | tee array | rs -T > tarray
vi(1) içinde, satır başına 9 öğe içeren çok satırlı bir vektörden oluşan dosyada eklemeler ve silmeler yapılabilir; ardından şu komutla düzgün biçimde 9 sütun halinde yeniden boyutlandırılabilir:
:1,$!rs 0 9
Bir veritabanını her 4 satırlık alanın ilk satırına göre sıralamak için:
rs -eC 0 4 | sort | rs -c 0 1
Ayrıca Bakınız
jot(1), pr(1), sort(1), vi(1)
Tarihçe
rs yardımcı programı ilk olarak 4.2BSD'de ortaya çıkmıştır.
Yazarlar
John A. Kunze
Hatalar
Yalnızca iki boyutlu dizileri destekler.
Algoritma şu anda dosyanın tamamını belleğe okur; bu nedenle belleğe sığmayan dosyalar yeniden boyutlandırılamaz.
Karakter konumlarında henüz alanlar tanımlanamaz.
Sütunların yeniden sıralanması henüz mümkün değildir.
Çok fazla seçenek vardır.
Çoklu bayt (multibyte) karakterler tanınmaz.
LINE_MAX (2048) bayttan uzun satırlar işlenmez ve rs aracının hemen sonlanmasına neden olur.