Я хотів би відобразити вміст текстового файлу в командному рядку. Файл містить лише 5-6 символів. Чи є простий спосіб це зробити?
Я хотів би відобразити вміст текстового файлу в командному рядку. Файл містить лише 5-6 символів. Чи є простий спосіб це зробити?
Відповіді:
catОскільки ваш файл короткий, ви можете використовувати його
cat.
cat filename
lessЯкщо вам доведеться переглянути вміст більш тривалого файлу, ви можете використовувати пейджер типу
less.
less filename
Ви можете змусити lessсебе вести себе так, catяк викликати невеликі файли, і поводитись нормально в іншому випадку, передаючи їм -Fі -Xпрапори.
less -FX filename
У мене є псевдонім для less -FX. Ви можете зробити таке собі таким:
alias aliasname='less -FX'
Якщо ви додасте псевдонім до своєї конфігурації оболонки , ви можете використовувати його назавжди.
odЯкщо ваш файл містить дивні або недруковані символи, ви можете використовувати
odдля вивчення символів. Наприклад,
$ 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є якісь явні переваги перед іншими програмами пейджера, як-от pg, чи це просто зводиться до особистих переваг?
lessмає більше можливостей, ніж pg. Погляньте на less(1)та pg(1)ручки. Є й інші пейджери. Погляньте на unix.stackexchange.com/questions/81129/… . lessце, мабуть, найбільш широко використовуваний пейджер, але який ви використовуєте, зводиться до особистих переваг.
moreі most!
Навіть якщо кожен використовує cat filenameдля друку текстових файлів в стандартному виведення першої мети є шахраєм кішка enating. Зі сторінки чоловічої коти:
cat - об'єднати файли та друкувати на стандартному виході
Зараз кішка чудово друкує файли, але є альтернативи:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
( )Повертає значення виразу, в цьому випадку вміст файлу , який потім розширюється $для echoабо printf.
Оновлення:
< filename
Це робить саме те, що ви хочете, і легко запам’ятати.
Ось приклад, який дозволяє вибрати файл у меню та потім надрукувати його.
#!/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
Для подальшого читання:
BashPitfalls - файл з котами | sed s / foo / bar /> файл
Довідка Bash - Перенаправлення
< filenameсаме те, що ви хочете, ..." вводить в оману. Загалом, хоча це цікава дискусія щодо альтернатив, я думаю, що catце простіше.
< filenameне відображає вміст файлу, але cat filenameробить.
tee < filename.
echo "$(<filename)"башизм. Тут недостатньо цього.
"$(<filename)". Дякую ...
Один з варіантів - використовувати more
напр more file.txt
Однак у нього немає всіх функцій, доданих користувачем less.
Один з простих прикладів - ви не можете прокручувати назад у виводі. Як правило, це витіснило менше - що було названо жартома тому, що
менше значить більше
Я завжди використовую $ less "your file here", як це дуже просто, забезпечує вбудовану інтерактивну grepкоманду та дає простий у користуванні інтерфейс, який можна прокручувати клавішами зі стрілками.
(Він також включений майже в кожну * nix систему)
lessє версією overkill more(порівняйте man lessз man more), і для мене вона має дві прикрої функції: 1) вона переходить на альтернативний буфер екрану, коли менше закінчується, файл, який ви тільки що переглядали, зникає 2) в EOF вам потрібно явно ввести q(Я знаю, для цього є варіант). Тож одна з моїх перших дій у новому середовищі - це налаштування export PAGER=/bin/moreв моєму профілі та використання його moreвесь час.
-Xпрапор. 2) Спробуйте -Eпрапор. lessмає moreрежим емуляції. Ви можете ввімкнути це, встановивши LESS_IS_MOREзмінну середовища. Ви можете прокручувати вгору в moreрежимі емуляції.
lessце надмірно складно. Його здатність виконувати зовнішні команди є прекрасним прикладом його надскладності.
moreта багато додаткових функцій вона робить цю роботу дуже добре.
Якщо це великий файл, і ви хочете шукати якусь конкретну частину, ви можете використовувати
cat filename | grep text_to_search -ni
Також ви можете використовувати більш інтерактивний редактор Vim (або редактор vi, якщо у вас немає Vim):
vim filename
Or
vi filename
Vim / vi - чудовий редактор, його також можна використовувати як зчитувач у «Нормальному режимі» або використовуючи параметр -R, він має багато функцій, які допоможуть вам переглядати файл.
vim -Rє view. Але майте на увазі, що він не любить перенаправлення, про що йдеться в xargs та vi - "Введення не з терміналу" .
Використовуйте команду cat для відображення вмісту імені файлу. ім'я файлу кішки
Використовуйте команду vim для редагування файлу. ім'я файлу vim
sed -n l fileможе бути корисним.