Linux Komutları

Bash Tac Komutu

Bash Tac Komutu
Tac, daha önce gidip yapana, tekerleği yeniden icat edene kadar fark etmediğiniz komutlardan biridir. övün, harikasın. Ellerin temizse senin için hayırlıdır; Her iki durumda da, bir tedavi içindesiniz, tac komutu hakkında bildiğim her şeyi ve daha fazlasını boşaltacağım. Okumaya devam etmek.

Ters kedi olarak da bilinir, çıktıdaki satırları | yerleşik boru operatörü ve tac. Yani, sol tarafta (lhs) bir komutunuz varsa ve çıktısının içeriğini tersine çevirmek istiyorsanız, tek yapmanız gereken lhs | tak. Bu kadar!

Kuşkusuz, göründüğünden daha fazlası var. Endişelenme. Hepsini iyi bir zamanda kapatacağız.

tac hakkında tavsiye

Kullanmak ya da kullanmamak işte bütün mesele bu. Mecbur kalmadığında dokunmak istemezsin. Ancak, ekmek ve tereyağı emriniz olarak ta'yı yaymak istiyorsanız, bu size kalmış. Bu arada, her iki tarafı da tarafsız tutmak için taktik konusunda tavsiyem.

tac ne zaman kullanılır

Daha az kod ve lhs komut seçeneklerini araştırmak için harcanan zaman ile komut satırından daha fazlasını elde etmenize yardımcı olan tac'ın kullanıldığı zamanlar vardır.

lhs seçeneklerinden emin olmadığınızda

Sıralama gibi birçok komut, bir komutun çıktısını tersine çevirme seçeneğiyle birlikte gelir. Ancak, sol taraftaki bir komutun çıktıyı tersine çevirmek için -r seçeneğine sahip olup olmadığından emin değilseniz, tac kullanmak çıktı satırlarını tersine çevirmenin kesin bir yoludur.

Performans önemli olmadığında

Önemsiz olmasına rağmen, çıktıyı tersine çevirmek için yerleşik bir seçenekle birlikte kullanılan komutların çoğu, çıktıyı tac'a aktarmaktan daha iyi performans gösterir. Bu nedenle, biraz performans gecikmesi sorun değilse, çıktıyı tersten tekrar oynatmak için tac'a bağlantı kurmak sorun değil.

tac ne zaman kullanılmamalı

Daha iyi bildiğiniz için tac'ı kullanamayacağınız zamanlar vardır. İşte dikkat edilmesi gereken birkaç.

lhs'deki komutun çıktı satırlarını tersine çevirme seçeneği olduğunu bildiğinizde

Dediğim gibi, "Çoğu komut çıktıyı tersine çevirme seçeneğiyle gelir.” Belirli bir lhs komutunun bir seçeneği olduğunu biliyorsanız, tac kullanmayabilirsiniz. Sonuçta, -r, - | tak.

Performans önemli olduğunda

Dediğim gibi, "lhs ters seçeneğini kullanmak, tac'den daha iyi performans gösterebilir.” Bir bash betiğinde birkaç saniyeyi sıkıştırmak istiyorsanız veya okumak için zaman gerektiren daha büyük dosyalarla uğraşıyorsanız, tac kullanamazsınız.

yardım

tac veya man tac için yardım komutunu çalıştırmak, kullanılabilecek seçeneklerle birlikte kullanımı gösterir. İşte ne bekleniyor.

Komutlar

tac --yardım

Çıktı

Tak sürümü

ben hangi versiyonum?
sen kendinin en son versiyonusun. Ancak, tac'nizin hangi sürümde olduğu durumunda, bunun için bir seçenek var.

Komutlar

tac --versiyon

Çıktı

Notlar

FreeBSD veya macOS'ta tac kullanıyorsanız, sürüm için uzun seçenek mevcut olmayabilir. Bu durumda, -v veya man tac'ı deneyin. denediysen haber ver. meraklıyım. Teşekkürler

Taktik seçenekleri

Yardım ve sürümün yanı sıra, tac'de fazla seçenek yok. Sahip olduğu şey için, tac'nin herhangi bir eski ters kedi olmadığını öğreneceğinizden emin olabilirsiniz.

seçeneğinden önce Tac

-b seçeneği, ayırıcının çıktıya nasıl eklendiğini değiştirmenize olanak tanır. Varsayılan olarak, yeni satır ayırıcısı her satırdan sonra eklenir.

kafa karıştırıcı olduğunu biliyorum. Örnek olarak parçalayalım.

İlk olarak, tac -b kullanmadan önce çıktımızın nasıl göründüğüne bakalım.

Komutlar

10. sıra

Çıktı

Şimdi -b olmadan tac kullandıktan sonra çıktımızın neye dönüştüğünü görelim.

Komutlar

sıra 10 | tak

Çıktı

Şimdi tac -b kullanarak çıktının neye dönüştüğünü görelim.

Komutlar

sıra 10 | tak -b

Çıktı

Tac ayırıcı seçeneği

Ayırıcı seçeneği -s 'literal string', satırları birbirinden ayırmak için tac tarafından kullanılan karakteri veya karakter dizisini belirtmenize izin verir. Varsayılan olarak, yeni satır karakteri (onaltılı olarak '0a') kullanılır.

Tac ayırıcı seçeneğinin nasıl kullanılacağı ilk başta açık değil. Ancak, orada olduğunu bildikten sonra, onu kullanmaya çalışmamak zor.

Onaltılık olarak gösterilen satırlarda çalışan aşağıdaki örneği göz önünde bulundurun.

Komutlar

sıra 20 | xxd -ps | tac -s '0a' | xxd -ps -r

Çıktı

Notlar

(1) Sıra 20 | tac komutu, ancak bu durumda, çıktı akışı üzerinde onaltılı olarak çalışmak için zaman harcamadık. Bu kalıbı kullanmak, sıfırıncı bayt gibi yeni satır karakteri kadar önemsiz bir şey olmadığında faydalıdır.

Şimdi biraz daha az ham ve basit HTML gibi daha fazla meta üzerinde tac kullanmayı daha az deneyin.

Aşağıdaki dosyayı göz önünde bulundurun.

Dosya

bir
B
C

Komutlar

dosya () echo -e " A
B
C
" ;
dosya | tak -s"
"

Çıktı

HTML sayfasını dönüştürmeyi başardık

bir
B
C

içine

C
B
bir

tac kullanmak.

Herhangi bir etiketi tac ayırıcı olarak ele almak gibi biraz daha karmaşık bir şey yapmanız gerektiğini varsayalım. Bu durumda, sadece ayırıcı seçeneğini tek başına kullanmaktan kurtulamayacaksınız. Normal ifade seçeneğinin devreye girdiği yer burasıdır. Ayırıcı seçeneğiyle birlikte, tac komutuyla bir dosyadaki bir satırı tersine çevirmekten daha fazlasını yapmanızı sağlar. İşte nasıl.

Tac normal ifade seçeneği

Normal ifade seçeneği -r -s 'regex', ayırıcı dizenin normal bir ifade olarak ele alınacağını belirtmenize olanak tanır.

tac regex seçeneğinin nasıl kullanılacağı, ayırıcıdan önce veya sonra -r seçeneğini eklemek kadar basittir.

Ayırıcı seçeneğiyle birlikte normal ifade seçeneğini kullanan önceki örneği düşünün. Herhangi bir işaretleme etiketini ayırıcı olarak ele alalım.

Dosya



basit fonksiyonlar


Bash'de işlevler basittir. En azından bu. Ekrana bir dize koyar.


Komutlar


basit işlev
()
Eko
aldığı kadar basit basit işlev

Kaynak: https://temptemp3.github.io/bash fonksiyonları

Komutlar

dosya ()

Eko '



basit fonksiyonlar

Bash'de işlevler basittir. En azından bu. bir koyar
ekrandaki dize.

Komutlar



basit işlev

(
)

Eko aldığı kadar basit

basit işlev
'

dosya | tac -r -s "]*."

Çıktı

HTML etiketlerini kullanarak dosyayı tersine çevirerek HTML sayfasını dönüştürmeyi başardık. Ayrıntılara bakarsanız, henüz mükemmel olmadığını fark edeceksiniz.

Saf bash içinde Tac komutu

İşte, bir lhs komutuyla aktarılan satırları tersine çeviren, saf bash içindeki tac uygulamasının ilkel bir sürümü. Gelecek sürümler bir alıştırma olarak bırakılmıştır.

#!/bin/bash
## tak
## sürüm 0.0.1 - başlangıç
#################################################
tak()
yerel -a arr
yerel -i ben
harita dosyası dizini -
i="$#arr[@]"
while [ $i -ge 0 ]
yapmak
yankı $arr[i]
i-=1 olsun
bitti

#################################################
tak
#################################################

Kaynak: https://github.com/temptemp3/ba.sh/blob/master/tac.ş

Diğer komutları kullanarak Tac komutu

Burada, bir lhs komutuyla aktarılan satırları tersine çeviren diğer komutları kullanan tac uygulamasının bazı ilkel sürümleri bulunmaktadır. Gelecek sürümler bir alıştırma olarak bırakılmıştır.

Başlamadan önce, gözlerinizi kapatın ve "Tac'ın ilkel bir sürümünü uygulamak için ne kullanılabilir??”
Aklıma birçok komut geliyor ama ben yerimiz olanlara odaklanacağım.

gawk

Saf bash örneğindeki Tac komutuna benzer şekilde, tac'yi uygulamak için önce tüm satırlar okunduktan sonra okunacak satırları tersten oynatacağız. İşte gawk kullanarak nasıl görüneceği.

 gawk ' line[++line[0]]=$(0)  END  for(i=0;i

Şimdi seq 10 lhs komutunu kullanmayı deneyin.

 sıra 10 | gawk '  line[++line[0]]=$(0)  END  for(i=0;i

Çıktı beklediğiniz gibi

Egzersizler

1. lhs() sıra 10 ; 1 ile 10 arasındaki tam sayıları listeler. lhs | rhs, yalnızca tac kullanıldığında 10864213579'a eşittir (İpucu: seçenek örneğinden önce Tac'e bakın)
2. rhs() find -mindepth 1 -maxdepth 1 -print0 ; tac kullanarak (İpucu: Tac ayırıcı seçenek örneğine bakın)
3. tac'yi uzat.sh (saf bash'ta Tac komutunda) tam olarak tac gibi davranmak için. Seçenekler eklemeniz ve davranışlarını test ettiğinizden emin olmanız gerekecek.
4. Özyinelemeli bir işlev olarak saf bash içinde tac'nin ilkel bir sürümünü uygulayın.

TL; DR

Bash tac komutunu yazmaktan yine keyif aldım. Okuduktan sonra, umarım düşündüğünüzden daha fazlasının olduğu konusunda hemfikirsinizdir. Ayrıca, en alta yakın yerlerde işleri zor yoldan yapmaya çalıştıktan sonra, umarım tac komutunun ne kadar yararlı olabileceğini biliyorsunuzdur. Herhangi biri alıştırmalardan herhangi birini tamamlamayı başarırsa veya ödevinde yardıma ihtiyacı olursa bana bildirin. Teşekkürler,

Tam Ekran Linux Uygulamalarında ve Oyunlarında OSD Yerleşimi Nasıl Gösterilir
Tam ekran oyunlar oynamak veya uygulamaları dikkat dağıtmayan tam ekran modunda kullanmak, bir panelde veya görev çubuğunda görünen ilgili sistem bilg...
En İyi 5 Oyun Yakalama Kartı
YouTube'da oyun akışlarını hepimiz gördük ve sevdik. PewDiePie, Jakesepticye ve Markiplier, oyun deneyimlerini yükleyerek ve izleyicileri en yeni oyun...
Linux'ta Oyun Nasıl Geliştirilir
On yıl önce, pek çok Linux kullanıcısı en sevdikleri işletim sisteminin bir gün ticari video oyunları için popüler bir oyun platformu olacağını tahmin...