Tôi muốn hiển thị nội dung của một tệp văn bản trên dòng lệnh. Tệp chỉ chứa 5-6 ký tự. Có cách nào làm dễ hơn không?
Tôi muốn hiển thị nội dung của một tệp văn bản trên dòng lệnh. Tệp chỉ chứa 5-6 ký tự. Có cách nào làm dễ hơn không?
Câu trả lời:
cat
Vì tập tin của bạn ngắn, bạn có thể sử dụng
cat
.
cat filename
less
Nếu bạn phải xem nội dung của tệp dài hơn, bạn có thể sử dụng máy nhắn tin như
less
.
less filename
Bạn có thể thực hiện less
hành vi như cat
khi được gọi trên các tệp nhỏ và hành xử bình thường bằng cách chuyển nó -F
và -X
cờ.
less -FX filename
Tôi có một bí danh cho less -FX
. Bạn có thể tự làm một cái như vậy:
alias aliasname='less -FX'
Nếu bạn thêm bí danh vào cấu hình shell của mình , bạn có thể sử dụng nó mãi mãi.
od
Nếu tệp của bạn chứa các ký tự lạ hoặc không thể in được, bạn có thể sử dụng
od
để kiểm tra các ký tự. Ví dụ,
$ 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
bất kỳ lợi thế rõ ràng so với các chương trình máy nhắn tin khác như pg
, hoặc nó chỉ sôi sục theo sở thích cá nhân?
less
có nhiều tính năng hơn pg
. Hãy nhìn vào less(1)
và các pg(1)
trang. Có máy nhắn tin khác là tốt. Hãy xem unix.stackexchange.com/questions/81129/ cấp . less
có lẽ là máy nhắn tin được sử dụng rộng rãi nhất nhưng cái nào bạn sử dụng tùy thuộc vào sở thích cá nhân.
more
và most
!
Mặc dù tất cả mọi người sử dụng cat filename
để in một tập tin văn bản cho mục đích đầu ra tiêu chuẩn, mục đích đầu tiên là con mèo . Từ trang người đàn ông của mèo:
cat - nối các tập tin và in trên đầu ra tiêu chuẩn
Bây giờ mèo là tốt để in các tập tin nhưng có những lựa chọn thay thế:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
Các ( )
trả về giá trị của một biểu thức, trong trường hợp này nội dung của tên tập tin mà sau đó được mở rộng bằng cách $
cho echo
hay printf
.
Cập nhật:
< filename
Điều này làm chính xác những gì bạn muốn và dễ nhớ.
Dưới đây là một ví dụ cho phép bạn chọn một tệp trong menu và sau đó in nó.
#!/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
Để đọc thêm:
BashPit thác - tập tin mèo | sed s / foo / bar /> file
Bash Tham khảo - Chuyển hướng
< filename
chính xác là những gì bạn muốn, ..." là sai lệch. Nhìn chung, mặc dù đây là một cuộc thảo luận thú vị về các lựa chọn thay thế, tôi nghĩ cat
đơn giản hơn.
< filename
không hiển thị nội dung của tập tin, nhưng cat filename
không.
tee < filename
.
echo "$(<filename)"
bashism. Không đủ điều đó ở đây.
"$(<filename)"
. Cảm ơn ...
Các công cụ xử lý tệp văn bản trên unix là các lệnh cơ bản, hàng ngày:
Trong unix và linux để in toàn bộ nội dung trong tệp
cat filename.txt
hoặc là
more filename.txt
hoặc là
less filename.txt
Đối với vài dòng cuối cùng
tail filename.txt
Đối với một vài dòng đầu tiên
head filename.txt
Một lựa chọn là sử dụng more
ví dụ more file.txt
Tuy nhiên, nó không có tất cả các tính năng được thêm vào less
.
Một ví dụ đơn giản là bạn không thể cuộn lại trong đầu ra. Nói chung, nó đã được vượt qua ít hơn - được đặt tên trong trò đùa vì
càng đơn giản càng đẹp
Tôi luôn luôn sử dụng $ less "your file here"
, vì nó rất đơn giản, cung cấp một grep
lệnh tương tác tích hợp và cung cấp cho bạn một giao diện dễ sử dụng mà bạn có thể cuộn bằng các phím mũi tên.
(Nó cũng được bao gồm trên gần như mọi hệ thống * nix)
less
là phiên bản quá mức của more
(so sánh man less
với man more
) và đối với tôi, nó có hai tính năng gây khó chịu: 1) nó chuyển sang bộ đệm màn hình thay thế, khi ít chấm dứt, tệp bạn vừa xem biến mất 2) tại EOF bạn phải gõ rõ ràng q
(Tôi biết, có một lựa chọn cho việc này). Vì vậy, một trong những hành động đầu tiên của tôi trong một môi trường mới là thiết lập export PAGER=/bin/more
trong hồ sơ của tôi và sử dụng more
mọi lúc.
-X
cờ. 2) Thử -E
cờ. less
có more
chế độ mô phỏng. Bạn có thể kích hoạt nó bằng cách đặt LESS_IS_MORE
biến môi trường. Bạn có thể cuộn lên trên trong more
chế độ mô phỏng.
less
nó quá phức tạp. Khả năng chạy các lệnh bên ngoài của nó là một ví dụ hoàn hảo về độ phức tạp quá mức của nó.
more
và nhiều tính năng bổ sung, nó hoạt động rất tốt.
Nếu đó là một tệp lớn và bạn muốn tìm kiếm một phần cụ thể, bạn có thể sử dụng
cat filename | grep text_to_search -ni
Ngoài ra, bạn có thể sử dụng trình soạn thảo Vim tương tác nhiều hơn (hoặc trình soạn thảo vi nếu bạn không có Vim):
vim filename
Or
vi filename
Vim / vi là một trình chỉnh sửa tuyệt vời, cũng có thể được sử dụng làm trình đọc trong "Chế độ bình thường" hoặc sử dụng tùy chọn -R, nó có nhiều tính năng sẽ giúp bạn duyệt qua tệp.
vim -R
là view
. Nhưng hãy nhớ rằng nó không thích chuyển hướng, như đã thảo luận trong xargs và vi - Nhập Đầu vào không phải từ một thiết bị đầu cuối .
Sử dụng lệnh cat để hiển thị nội dung của tên tệp. tên tập tin con mèo
Sử dụng lệnh vim để chỉnh sửa tập tin. tên tệp vim
sed -n l file
có thể hữu ích.