Solusi yang ditawarkan di sini tidak berhasil untuk saya. Mungkin masalah saya berbeda, tetapi saya perlu menghapus warna ASCII dan karakter lain dari teks ASCII murni.
Namun, yang berikut ini berhasil untuk saya:
Mengupas Kode Pelarian dari Teks ASCII
sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g'
Dalam konteks (BASH):
$ printf "\e[32;1mhello\e[0m\n"
hello
$ printf "\e[32;1mhello\e[0m\n" | cat -vet
^[[32;1mhello^[[0m$
$ printf "\e[32;1mhello\e[0m\n" | sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g' | cat -vet
hello$
Apakah Anda mencoba
cat /bin/mkdir | tr -cd "[:print:]"
Saya pikir itu menyelesaikan masalah ?
Jika hanya konten teks yang menarik bagi Anda, Anda juga dapat menggunakan
cat /bin/mkdir | strings
Apakah Anda tahu penyandian file apa yang saat ini digunakan? Jika demikian, Anda dapat menggunakan iconv untuk mengonversinya. Ini adalah utilitas untuk mengonversi dari satu pengkodean karakter ke yang lain. Jadi, jika file aslinya dalam UTF-8 dan Anda ingin mengonversi ke ASCII, Anda dapat menggunakan yang berikut ini:
iconv -f utf8 -t ascii <inputfile>
Perintah file pada file masukan mungkin memberi tahu Anda penyandian saat ini.
Menariknya, ada perintah bernama enca yang akan melakukan yang terbaik untuk menentukan penyandian karakter yang digunakan jika Anda mengetahui bahasa konten file.
Pertanyaan lain ini mungkin jawabannya.
Ini sepertinya tidak bekerja dengan sed
. Mungkin tr
akan dilakukan?
tr -d '\200-\377'
Atau dengan pelengkap:
tr -cd '\000-\177'