Perintah Linux

Perintah Bash Tac

Perintah Bash Tac
Tac adalah salah satu perintah yang tidak anda sedari sehingga anda berjaya dan melakukannya, mencipta semula roda, yang tidak biasa dalam praktik pengaturcaraan sama ada anda baru belajar tali atau seorang profesional dengan pengalaman bertahun-tahun hingga bermegah, anda hebat. Sekiranya tangan anda bersih, maka baik untuk anda; Walau apa pun, anda ingin mendapatkan hadiah, saya akan memunggah semua yang saya tahu mengenai arahan tac dan banyak lagi. Teruskan membaca.

Juga dikenali sebagai kucing terbalik, gunakan utiliti baris perintah sederhana yang membolehkan anda membalikkan garis dalam output menggunakan | operator paip terbina dan tac. Maksudnya, jika anda mempunyai perintah, sebelah kiri (lhs), dan ingin membalikkan isi outputnya, semua yang anda lakukan adalah ketik lhs | tac. Itu sahaja!

Diakui, ada lebih banyak tac daripada memenuhi mata. Jangan risau. Kami akan membahas semuanya, pada waktunya.

Nasihat mengenai tac

Untuk menggunakan atau tidak untuk digunakan, itulah persoalannya. Anda tidak akan tidak mahu tac apabila anda tidak perlu. Walau bagaimanapun, jika anda ingin menyebarkan tac seperti arahan roti dan mentega anda yang terpulang kepada anda. Sementara itu, berikut adalah nasihat saya agar kedua-dua belah pihak tetap bersikap berkecuali.

Bila hendak menggunakan tac

Ada kalanya menggunakan tac yang membantu anda memanfaatkan lebih banyak baris perintah dengan lebih sedikit kod dan masa yang dihabiskan untuk meneliti pilihan perintah.

Apabila anda tidak pasti mengenai pilihan lhs

Banyak perintah seperti urutan disertakan dengan pilihan untuk membalikkan output perintah. Namun, jika anda tidak pasti apakah perintah di sebelah kiri mempunyai pilihan -r untuk membalikkan output, menggunakan tac adalah cara pasti untuk membalikkan garis output.

Apabila prestasi tidak menjadi masalah

Walaupun tidak signifikan, kebanyakan perintah yang digunakan bersama dengan pilihan bawaan untuk membalikkan output berkinerja lebih baik daripada menyalurkan output ke tac. Oleh itu, jika sedikit prestasi tidak menjadi masalah, memasuki tac untuk memainkan semula output secara terbalik tidak mengapa.

Bila tidak menggunakan tac

Ada kalanya anda mungkin tidak menggunakan tac kerana anda lebih tahu. Berikut adalah beberapa perkara yang perlu diperhatikan.

Apabila anda mengetahui arahan pada lhs mempunyai pilihan untuk membalikkan garis output

Seperti yang saya katakan, "Sebilangan besar perintah dilengkapi dengan pilihan untuk membalikkan output."Sekiranya anda tahu bahawa perintah lhs tertentu mempunyai pilihan, anda mungkin tidak menggunakan tac. Lagipun, -r lebih pendek daripada - | tac.

Apabila prestasi penting

Seperti saya katakan, "Menggunakan pilihan terbalik lhs mungkin berkinerja lebih baik daripada tac."Sekiranya anda ingin menghabiskan beberapa saat dalam skrip bash atau berurusan dengan fail yang lebih besar yang memerlukan masa untuk membaca, anda mungkin tidak menggunakan tac.

Tac tolong

Menjalankan perintah bantuan untuk tac atau man tac menunjukkan penggunaan bersama dengan pilihan yang mungkin digunakan. Inilah yang diharapkan.

Perintah

tac --membantu

Pengeluaran

Versi Tac

Versi apa saya?
Anda adalah versi terkini diri anda. Walau bagaimanapun, dalam hal versi tac anda, ada pilihan untuk itu.

Perintah

tac - penukaran

Pengeluaran

Catatan

Sekiranya anda menggunakan tac di FreeBSD atau macOS, pilihan lama untuk versi mungkin tidak tersedia. Sekiranya demikian, cuba -v atau man tac. Sekiranya anda mencubanya, beritahu saya. Saya ingin tahu. Terima kasih

Pilihan Tac

Selain bantuan dan versi, tac tidak mempunyai banyak pilihan. Untuk apa yang ada, anda pasti dapat mengetahui bahawa tac bukan sekadar kucing terbalik yang lama.

Tac sebelum pilihan

Pilihan -b membolehkan anda mengubah bagaimana pemisah dilampirkan dalam output. Secara lalai, pemisah garis baru dilampirkan selepas setiap baris.

Saya tahu ia membingungkan. Mari kita pecahkan dengan contoh.

Pertama, mari kita lihat bagaimana output kita sebelum menggunakan tac -b.

Perintah

seq 10

Pengeluaran

Sekarang mari kita lihat bagaimana output kita berubah setelah menggunakan tac tanpa -b.

Perintah

seq 10 | tac

Pengeluaran

Sekarang mari kita lihat apa output berubah menjadi tac -b.

Perintah

seq 10 | tac -b

Pengeluaran

Pilihan pemisah Tac

Pilihan pemisah -s 'string literal' membolehkan anda menentukan watak atau urutan watak yang digunakan oleh tac untuk membezakan garis. Secara lalai, watak barisan baru ('0a' dalam hex) digunakan.

Cara menggunakan pilihan pemisah tac tidak jelas pada mulanya. Namun, setelah anda mengetahui bahawa ia ada di sana, sukar untuk tidak menggunakannya.

Pertimbangkan contoh berikut, beroperasi pada garis yang ditunjukkan dalam hex.

Perintah

seq 20 | xxd -ps | tac -s '0a' | xxd -ps -r

Pengeluaran

Catatan

(1) Mungkin kelihatan remeh ketika menggunakan seq 20 | perintah tac, bagaimanapun, dalam hal itu, kita tidak menghabiskan masa bekerja pada aliran output dalam hex. Menggunakan corak ini berguna apabila pemisah bukan sesuatu yang remeh kerana watak baris baru seperti nol byte.

Sekarang kurang cuba menggunakan tac pada sesuatu yang lebih kurang mentah dan lebih banyak meta seperti HTML ringkas.

Pertimbangkan fail berikut.

Fail

A
B
C

Perintah

fail () echo -e "A
B
C
";
fail | tac -s "
"

Pengeluaran

Kami berjaya menukar halaman HTML

A
B
C

ke dalam

C
B
A

menggunakan tac.

Katakan bahawa anda perlu melakukan sesuatu yang lebih rumit seperti memperlakukan sebarang tag sebagai pemisah tac. Sekiranya demikian, anda tidak akan melepaskan diri dengan hanya menggunakan pilihan pemisah sahaja. Di situlah pilihan regex masuk. Digabungkan dengan pilihan pemisah, ia membolehkan anda melakukan lebih banyak perkara dengan perintah tac daripada membalikkan garis dalam fail. Ini caranya.

Pilihan Tac regex

Pilihan regex -r -s 'regex' membolehkan anda menentukan bahawa rentetan pemisah harus diperlakukan sebagai ungkapan biasa.

Cara menggunakan pilihan tac regex semudah menambahkan pilihan -r sebelum atau sesudah pemisah.

Pertimbangkan contoh sebelumnya menggunakan pilihan regex bersama dengan pilihan pemisah. Mari kita perlakukan sebarang tanda penanda sebagai pemisah.

Fail



fungsi sederhana


Fungsi sederhana dalam bash. Sekurang-kurangnya ini adalah. Ia meletakkan tali di skrin.


Perintah


fungsi sederhana
()
gema
semudah yang diperoleh fungsi sederhana

Sumber: https: // godemp3.github.fungsi io / bash

Perintah

fail ()

gema '



fungsi sederhana

Fungsi sederhana dalam bash. Sekurang-kurangnya ini adalah. Ia meletakkan a
rentetan di skrin.

Perintah



fungsi sederhana

(
)

gema semudah yang diperoleh

fungsi sederhana
'

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

Pengeluaran

Kami berjaya mengubah halaman HTML membalikkan fail menggunakan tag HTML. Sekiranya anda melihat perinciannya, anda akan melihat bahawa ia belum sempurna.

Perintah Tac dalam bash tulen

Berikut adalah versi primitif implement tac dalam bash murni yang membalikkan garis yang disalurkan oleh perintah lhs. Versi masa depan dibiarkan sebagai latihan.

#!/ bin / bash
## tac
## versi 0.0.1 - awal
#################################################
tac ()
tempatan -a arr
tempatan -i i
mapfile arr -
i = "$ # arr [@]"
sementara [$ i -ge 0]
buat
gema $ arr [i]
biarkan i- = 1
selesai

#################################################
tac
#################################################

Sumber: https: // github.com / faaosoempemp3 / ba.sh / blob / master / tac.sh

Perintah Tac menggunakan perintah lain

Berikut adalah beberapa versi tac implement menggunakan perintah lain yang membalikkan garis yang disalurkan oleh perintah lhs. Versi masa depan dibiarkan sebagai latihan.

Sebelum kita mulai, tutup mata Anda dan pikirkan, "Apa yang bisa digunakan untuk menerapkan versi tac primitif?"
Banyak arahan terlintas di fikiran saya tetapi saya akan menumpukan perhatian pada perintah yang kita ada.

gawk

Mirip dengan perintah Tac dalam contoh bash murni, untuk melaksanakan tac kita akan terlebih dahulu menyimpan baris baca untuk dimainkan secara terbalik setelah semua baris dibaca. Inilah bagaimana penampilan menggunakan gawk.

 gawk 'line [++ line [0]] = $ (0) TAMAT untuk (i = 0; i

Sekarang cuba gunakan pada perintah lhs seq 10.

 seq 10 | gawk 'line [++ line [0]] = $ (0) TAMAT untuk (i = 0; i

Seperti yang anda jangkakan outputnya

Latihan

1. Fungsi lhs () seq 10; menyenaraikan bilangan bulat 1 hingga 10. Tuliskan arahan rhs sehingga lhs | rhs sama dengan 10864213579 hanya menggunakan tac (Petunjuk: lihat contoh Tac sebelum pilihan)
2. Balikkan output rhs () cari -mindepth 1 -maxdepth 1 -print0; menggunakan tac (Petunjuk: lihat contoh pilihan pemisah Tac)
3. Panjangkan tac.sh (dalam perintah Tac dalam bash tulen) untuk berkelakuan sama seperti tac. Anda perlu menambahkan pilihan dan pastikan untuk menguji kelakuan mereka.
4. Laksanakan versi tac primitif dalam bash murni sebagai fungsi rekursif.

TL; DR

Sekali lagi, saya seronok menulis arahan Bash tac. Setelah membaca, saya harap anda dapat bersetuju bahawa ada lebih banyak perkara yang dapat anda ketahui daripada yang anda fikirkan. Juga, setelah berusaha melakukan perkara dengan sukar di bahagian bawah, saya harap anda tahu betapa berguna arahan tac. Sekiranya ada yang berjaya menyelesaikan sebarang latihan atau memerlukan bantuan dalam kerja rumah mereka, beritahu saya. Terima kasih,

Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...
10 Permainan Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform dominan untuk permainan kerana peratusan besar permainan yang sedang berkembang hari ini untuk meny...
5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...