Saya ingin menampilkan konten file teks pada baris perintah. File hanya berisi 5-6 karakter. Apakah ada cara mudah untuk melakukan ini?
Saya ingin menampilkan konten file teks pada baris perintah. File hanya berisi 5-6 karakter. Apakah ada cara mudah untuk melakukan ini?
Jawaban:
cat
Karena file Anda pendek, Anda dapat menggunakan
cat
.
cat filename
less
Jika Anda harus melihat konten file yang lebih panjang, Anda dapat menggunakan pager seperti
less
.
less filename
Anda dapat membuat less
berperilaku seperti cat
ketika dipanggil pada file kecil dan berperilaku normal sebaliknya dengan meneruskannya -F
dan memberi -X
tanda.
less -FX filename
Saya punya alias untuk less -FX
. Anda dapat membuatnya sendiri seperti ini:
alias aliasname='less -FX'
Jika Anda menambahkan alias ke konfigurasi shell Anda, Anda dapat menggunakannya selamanya.
od
Jika file Anda berisi karakter aneh atau tidak diinginkan, Anda dapat menggunakan
od
untuk memeriksa karakter. Sebagai contoh,
$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o
0000020 = 367 \n
0000023
less
ada keuntungan yang jelas dibandingkan dengan program pager lain seperti pg
, atau apakah hanya bermuara pada preferensi pribadi?
less
memiliki lebih banyak fitur daripada pg
. Lihatlah less(1)
dan pg(1)
halaman manual. Ada pager lain juga. Lihatlah unix.stackexchange.com/questions/81129/… . less
mungkin pager yang paling banyak digunakan tetapi yang Anda gunakan turun ke preferensi pribadi.
more
dan most
!
Meskipun semua orang menggunakan cat filename
untuk mencetak teks file ke standar keluaran tujuan pertama adalah con kucing enating. Dari halaman manual kucing:
cat - menyatukan file dan mencetak pada output standar
Sekarang kucing baik-baik saja untuk mencetak file tetapi ada alternatif:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
The ( )
mengembalikan nilai dari ekspresi, dalam hal ini isi nama file yang kemudian diperluas oleh $
untuk echo
atau printf
.
Memperbarui:
< filename
Ini tepat seperti yang Anda inginkan dan mudah diingat.
Berikut adalah contoh yang memungkinkan Anda memilih file dalam menu dan kemudian mencetaknya.
#!/bin/bash
select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
printf "%s" "$(<$fname)"
break
done
Untuk bacaan lebih lanjut:
BashPitfalls - file cat | sed s / foo / bar /> file
Referensi Bash - Redirect
< filename
tepat seperti yang Anda inginkan, ..." menyesatkan. Secara keseluruhan, meskipun ini merupakan diskusi yang menarik tentang alternatif, saya pikir cat
lebih sederhana.
< filename
tidak menampilkan konten file, tetapi cat filename
tidak.
tee < filename
juga.
echo "$(<filename)"
bashism. Tidak cukup di sini.
"$(<filename)"
. Terima kasih ...
Alat untuk menangani file teks di unix adalah perintah dasar, sehari-hari:
Di unix dan linux untuk mencetak seluruh konten dalam file
cat filename.txt
atau
more filename.txt
atau
less filename.txt
Untuk beberapa baris terakhir
tail filename.txt
Untuk beberapa baris pertama
head filename.txt
Salah satu opsi adalah menggunakan more
misalnya more file.txt
Namun tidak memiliki semua fitur ditambahkan oleh less
.
Salah satu contoh sederhana adalah bahwa Anda tidak dapat menggulir kembali dalam output. Umumnya telah digantikan oleh kurang - yang dinamai bercanda karena
kurang itu lebih
Saya selalu menggunakan $ less "your file here"
, karena sangat sederhana, menyediakan grep
perintah interaktif bawaan, dan memberi Anda antarmuka yang mudah digunakan yang dapat Anda gulir dengan tombol panah.
(Ini juga termasuk di hampir setiap sistem * nix)
less
adalah versi berlebihan dari more
(bandingkan man less
dengan man more
), dan bagi saya itu memiliki dua fitur yang mengganggu: 1) itu beralih ke buffer layar alternatif, ketika kurang berakhir, file yang baru saja Anda lihat menghilang 2) di EOF Anda harus mengetikkan secara eksplisit q
(Saya tahu, ada opsi untuk ini). Jadi salah satu tindakan pertama saya di lingkungan baru adalah pengaturan export PAGER=/bin/more
di profil saya dan gunakan more
sepanjang waktu.
-X
bendera. 2) Coba -E
bendera. less
memiliki more
mode emulasi. Anda dapat mengaktifkannya dengan mengatur LESS_IS_MORE
variabel lingkungan. Anda dapat menggulir ke atas dalam more
mode emulasi.
less
terlalu rumit. Kemampuannya untuk menjalankan perintah eksternal adalah contoh sempurna dari kompleksitasnya yang berlebihan.
more
, dan ada banyak fitur tambahan, ia melakukan pekerjaan dengan sangat baik.
Jika ini file besar, dan Anda ingin mencari bagian tertentu, Anda dapat menggunakannya
cat filename | grep text_to_search -ni
Anda juga dapat menggunakan editor Vim yang lebih interaktif (atau editor vi jika Anda tidak memiliki Vim):
vim filename
Or
vi filename
Vim / vi adalah editor yang hebat, juga dapat digunakan sebagai pembaca dalam "Mode Normal" atau menggunakan opsi -R, ia memiliki banyak fitur yang akan membantu Anda dalam menelusuri file.
vim -R
adalah view
. Tetapi perlu diingat bahwa itu tidak suka pengalihan, seperti yang dibahas dalam xargs dan vi - "Input bukan dari terminal" .
Gunakan perintah cat untuk menampilkan konten nama file. nama file kucing
Gunakan perintah vim untuk mengedit file. nama file vim
sed -n l file
bisa bermanfaat.