Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: вывод напрямую или через less в зависимости от длины файла  (Прочитано 1848 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
суть задачи: есть некий файл, содержмое которого мы хотим посмотреть. при этом размер оного неизвестен. если просто вывести его с помощью cat - он может оказаться длиннющей простыней с кучей коментариев и пр., которая даже не влезет целиком в прокрутку. а ежели пускать все через less - с файлами из трех строк это только мешает. можно, конечно, предварительно смотреть размер файла или скармливать его wc -l, но я решил изобрести путь проще:
# ! /bin/bash
eval "$(resize)"
input="$(cat)"
length=$(echo "$input" | wc -l)
if [ "$length" -gt "$LINES" ] ; then
echo "$input" | less
else echo "$input"
fi
сей нехитрый скрипт сохраняем в ~/.bin (папка прописывается в ~/.profile), в /usr/bin (нужны права рута) или еще куда, называем, к примеру, long и делаем исполняемым (chmod +x /path/to/long). можно попробовать запихать в bashrc в качестве функции - честно говоря, не проверял. теперь вместо
cat /etc/fstab | lessиспользуем
cat /etc/fstab | longесли количество строк в файле меньше высоты (в строках) терминала/tty-консоли - содержимое выводится напрямую. если больше - через less.
наслаждайтесь)))
лучше на "ты"

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.