Saya perlu menyimpan hasil dari perintah grep ke file, tetapi saya juga ingin file output diformat dan menjaga warna seperti di terminal.
Apakah ada cara untuk melakukan itu? Mungkin membuat grep menyimpan ke semacam bahasa markup? Jika tidak memungkinkan, apakah ada alat lain yang dapat menyelesaikan tugas ini?
Saya mencoba membuat kata kunci pencarian menonjol di file output, persis seperti yang ada di terminal.
pygmentize
bekerja dengan banyak lainnya.Tergantung pada apa yang ingin Anda lakukan dengan file output, dimungkinkan untuk menambahkan warna ke file teks normal karena warna hanya berasal dari beberapa karakter khusus. Grep tampaknya tidak ingin mencetaknya saat Anda mengarahkan ulang ke file, jadi Anda harus memaksanya untuk:
Sekarang, ketika Anda mencetak file ke konsol itu akan dicetak dengan warna, karena Bash menafsirkan karakter tersebut sebagai "gunakan warna ini".
Namun, jika Anda membukanya di editor seperti
vim
, Anda akan mendapatkan beberapa karakter aneh. Misalnya, ketika saya menggunakan perintahOutputnya terlihat benar ketika saya mencetaknya menggunakan
cat
tetapi ketika saya membukanyavim
saya dapatkanJadi jika Anda ingin menggunakan editor, ini mungkin bukan yang Anda inginkan.
sumber
Jika saya mengerti benar Anda ingin menyimpan keluaran terminal dalam file teks, kan? Tapi Anda ingin diformat dengan warna. Jika itu masalahnya, inilah gagasan saya:
Sorot output secara otomatis
Seperti yang mungkin Anda ketahui, jika Anda menangkap keluaran grep ke file teks, justru karena itu adalah file teks, itu tidak dapat diformat. Jadi, sejauh yang saya tahu, Anda tidak dapat melakukannya dengan mudah.
Meskipun demikian ada solusi sederhana, yang terdiri dari membuat menyadari editor teks Anda apa jenis file yang dibuka. Sebagai contoh, katakanlah bahwa keluaran grep Anda memiliki beberapa komponen bash, jadi bash highlight berfungsi untuk Anda (omong-omong, ini sering merupakan warna yang Anda lihat dalam keluaran berwarna di terminal). Jadi triknya adalah menyimpan output teks dalam file dengan ekstensi yang tepat. Alih-alih melakukan sesuatu seperti:
Anda dapat pergi untuk
Yang akan membuat gedit (atau editor teks yang layak) secara otomatis mengenali bahwa Anda berbicara tentang kode bash, dan akan menyorotnya sesuai. Anda tidak perlu mewarnai output, program akan melakukannya untuk Anda jika ia mengenali jenis kode yang dibuka. Jika Anda bekerja dengan jenis format lain, sesuaikan saja ekstensi dengan penyesuaian yang lebih baik untuk apa yang Anda garap (mis.> Output.xml,> output.html,> output.py ... dll). Semoga berhasil! :)
Sorot beberapa kata dalam file output
Jadi, jika saya mengerti, Anda ingin menyorot kata-kata yang Anda cari. Sekali lagi, itu tidak dapat dilakukan dalam file teks biasa hanya karena teks biasa. Namun Anda dapat menambahkan beberapa format ke dalamnya dengan cara yang sangat mudah seperti menggunakan beberapa kode html. Ini akan mengubah output Anda dalam kode html, dan ketika Anda membukanya dengan program yang dapat menginterpretasikan html (penulis libreoffice, firefox, dan 10000 dll) Anda akan melihat beberapa kata yang disorot.
Untuk melakukannya, katakanlah ini grep Anda, diekspor ke html:
Dan sekarang Anda ingin menyorot keytext di output Anda. Anda dapat menggunakan sed untuk melakukannya, seperti:
Dan, sekarang keytext Anda disorot dengan warna merah.
sumber