GNU/Linux >> Belajar Linux >  >> Linux

Cara membersihkan output dari perintah 'skrip' linux

Jika Anda ingin melihat file tersebut, maka Anda dapat mengirimkan hasilnya melalui col -bp; ini menafsirkan karakter kontrol. Kemudian Anda dapat menyalurkan lebih sedikit, jika Anda mau.

col -bp typescript | less -R

Pada beberapa sistem col tidak akan menerima argumen nama file, sebagai gantinya gunakan sintaks ini:

col -bp <typescript | less -R

cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed

inilah beberapa interpretasi input string ke perl :

  • s/pattern//g berarti melakukan substitusi pada keseluruhan (kode g opsi berarti melakukan semuanya alih-alih berhenti pada pengganti pertama) input string

inilah beberapa interpretasi dari pola regex:

  • \e cocok dengan karakter kontrol "escape" khusus (ASCII 0x1A)
  • ( dan ) adalah awal dan akhir grup
  • | berarti grup tersebut dapat cocok dengan salah satu dari N pola. di mana pola N berada
    • [^\[\]] atau
    • \[.*?[a-zA-Z] atau
    • \].*?\a
  • [^\[\]] artinya
    • cocokkan sekumpulan karakter NOT yang karakter not-nya adalah [ dan ]
  • \[.*?[a-zA-Z] artinya
    • cocokkan string yang dimulai dengan [ lalu lakukan .*? yang tidak serakah hingga karakter alfa pertama
  • \].*?\a artinya
    • cocokkan string yang dimulai dengan ] lalu lakukan .*? yang tidak serakah sampai Anda menekan karakter kontrol khusus yang disebut "karakter peringatan (bel)"

Untuk jumlah besar script keluaran, saya akan meretas skrip perl bersama-sama secara iteratif. Jika tidak, edit tangan dengan editor yang baik.

Kemungkinan besar tidak ada metode otomatis untuk menghapus karakter kontrol dari script output dengan cara mereproduksi apa yang ditampilkan di layar pada saat-saat penting tertentu (seperti saat tuan rumah sedang menunggu pertama itu karakter dari beberapa masukan pengguna).

Misalnya layar mungkin kosong kecuali untuk Andrew $ , jika Anda kemudian mengetik rm /* dan menekan backspace dua belas kali (jauh lebih banyak dari yang dibutuhkan), apa yang ditampilkan di layar pada akhirnya bergantung pada shell apa yang dijalankan, apa stty Anda saat ini pengaturannya adalah (yang mungkin Anda ubah di tengah sesi) dan mungkin beberapa faktor lain juga.

Hal di atas berlaku untuk metode otomatis apa pun yang secara terus-menerus menangkap input dan output. Alternatif utama adalah mengambil "tangkapan layar" atau memotong dan menempelkan layar pada waktu yang tepat selama sesi (yang saya lakukan untuk panduan pengguna, catatan untuk catatan harian, dll).


Linux
  1. Cara Mengganti Nama File di Linux

  2. Cara menggunakan Perintah Su di Linux

  3. Bagaimana cara membuat serial eksekusi perintah di linux?

  1. Cara Menetapkan Output dari Perintah Linux ke Variabel

  2. Cara Membuat Script Perintah Linux

  3. Bagaimana cara membaca kolom IDLE di output perintah 'w' Linux?

  1. Cara menangkap sesi terminal dan output dengan perintah skrip Linux

  2. Bagaimana Cara Menjalankan Perintah Sebelum Login Pengguna Di Linux?

  3. Bagaimana Mengenalinya Jika Output Dari Perintah Atau Skrip Shell Adalah Stdout Atau Stderr?