Linux lines in console

in linux console, how to NOT wrap output

In a (linux) terminal, sometimes it is less important to see line endings, but more important not to clutter the line startings. e.g.

line1 sddd dd ddd line2 sdafss ss s line 3 da aaaa aa 
line1 sddd dd ddd dd dddd dd line2 sdafss ss s s ss line 3 da aaaa aa 

is there a way to «cut» or «hide» line ending at the end of the terminal’s window, in the same manner as «less -S» does, but for kind-of-normal output?

3 Answers 3

Line wrap disabling support is terminal dependent. For example if using screen you can hit Ctrl — A Ctrl — R to toggle line wrap.

Otherwise, you might try setterm -linewrap off with or without increasing the number of terminal columns with stty (haven’t tried this).

Terminal emulators like PuTTY (if you connect to the server from a Windows box) have their own settings.

If the terminal supports VT escape codes, echo -ne «\x1b[7l» will disable screen wrap ( echo -ne «\x1b[7h» will enable it).

Notice that what works in one terminal might not work in another — for example I’m now on a PuTTY window on a Linux OpenSuSE 12.3 with bash, using screen : its control sequence works perfectly, while VT codes and term do not. On a text-mode console on a older SuSE 11 (not GUI), the VT sequence works (probably screen would, too), stty is apparently ignored.

If you can’t mess with your terminal, here’s a quick script I rely on heavily:

# Truncate input(s) to the current terminal width # Usage: trunc [-r] [FILE. ] trunc() < local B='^' A= if [ -z "$COLUMNS" ]; then COLUMNS="$(tput cols)"; fi if [ "$1" = '-r' ]; then shift; B= A='$'; fi expand "$@" |GREP_COLORS=ms= egrep -o "$B.$A" > 

This converts tabs to spaces with expand and then gives you only the first zero to $COLUMNS characters of the text in standard input or the given files. It supports -r to reverse the truncation so you see the last zero to $COLUMNS characters.

(How? grep -o «only» shows matching content. The extended regex ^. will match only the first 0-80 characters while .$ will only match the final 0-80 characters. I’m using those ranges to ensure that shorter lines still show up. Regexes are greedy, so they’ll match as much as is available.)

Читайте также:  Unreal tournament 1999 linux

You can change the width you truncate to by setting the $COLUMNS variable manually. For example, to truncate to 72 characters, use COLUMNS=72 trunc FILE .

This script assumes each character displays with a width of one. That’s not true for escapes, wide characters, or zero-width characters, so perhaps you want to strip ANSI escape sequences or use my full version of trunc (a perl script), which uses colors to note when content was truncated and preserves colors (their control codes are skipped when measuring the width). It also supports -m for skipping content in the middle.

Источник

Как в Linux вывести строку?

Начнем с команды, с которой уже не однократно встречались, команда cat. Сначала посмотрим справку по данной команде с помощью man cat. Этая команда предназначена для объединения файлов и печати на стандартный вывод информации. Под стандартным выводом предполагается вывод на консоль информации. Так же можно увидеть, что у данной команды есть ключи.

Как вывести сходу информацию из двух созданных файлов?

А в справке было написано, что команда сможет объединять содержимое файлов.

cat hello1.txt hello2.txt > hello3.txt
cat hello3.txt

Мы вывели на стандартный вывод (консоль) содержание файлов и передали то, что на экране в новый файл hello3.txt. А затем просто вывели на консоль.

Как вывести некоторую строку файла в Linux?

При трейсе ошибки установки одного скрипта, возникла необходимость прочитать 98 строку файла. Делается это, ожидаемо, через команду вывода cat

# cat filename | head -n98 | tail -n1

где head -n предлагает сделать нужную строку, а tail -n задает сколько строк показать перед нужной. В данном варианте показана будет только одна строка.

То есть если нам необходимо вывести какой-никакой то сегмент строк, скажем, строки с 10 по 20, то выражение будет иметь вид

# cat filename | head -n20 | tail -n11

Как вывести 5-ый строку в Linux?

Если я хочу извлечь пятую строку файла, то делаю так:
$ head -n 5 имя_файла | tail -n 1

#!/bin/bash
for i in $(find /etc/ -type f);
do cat $i | head -n5 | tail -n1 >> ~/000
done
sort ~/000

Данный скрипт на bash хватит всё файлы из папки etc, с них берёт пятую строку и выводит в файл, который создаёт в домашнем каталоге, а затем сортирует.

Как вывести нужные строки в Linux из файла с помощью sed?

Тому, кто пишет много скриптов bash, довольно частенько приходится выбирать нужные строки из текста, например готовые блоки кода. Вчера я как раз обязан был извлечь первую строку из файла, назовем его somefile.txt.

$ cat somefile.txt
Line 1
Line 2
Line 3
Line 4

Это весьма просто сделать при помощи команды head:

$ head -1 somefile.txt
Line 1

Для более сложных задачек, например, извлечь вторую и третью строки из того же файла, команда head не подходит. Подавайте попробуем команду sed ? редактор потока (STream Editor). Моя первая попытка применить команду p (print) очутилась неудачной:

Читайте также:  Kali linux информационная безопасность

$ sed 1p somefile.txt
Line 1
Line 1
Line 2
Line 3
Line 4

Обратите внимание, что редактор отпечатывает весь файл, причем указанную первую строку печатает дважды. Почему? По умолчанию редактор перепечатывает на типовой вывод каждую строку вводимого файла. Четко заданная команда 1p приказывает печатать первоначальную строку. В итоге первая строка дублируется. Чтобы этого не происходило нужно подавить дефолтный вывод при поддержки опции -n, чтобы на выводе был только результат команды 1p:

$ sed -n 1p somefile.txt
Line 1

Можно пойти иным путем и удалить из файла все строки, кроме первой:

$ sed ‘1!d’ somefile.txt
Line 1

где ‘1!d’ значит: если строка не является первой (!), то подлежит удалению. Обратите внимания на кавычки (одинарные). Они асбсолютно необходимы, так как без них конструкция 1!d вызовет последнюю запускавшуюся в шелле команду, начинающуюся с буквы d. Для извлечения многих строк, скажем, со второй по четвертую, можно поступить одним из следующих способов:

$ sed -n 2,4p somefile.txt
$ sed ‘2,4!d’ somefile.txt

Перерыв обозначается через запятую включительно. А если строки не идут друг за другом, например, с первоначальной по вторую и еще четвертую?

$ sed -n -e 1,2p -e 4p somefile.txt

Источник

How to see more lines in the terminal

I’m installing a package and get a load of errors and need to be able to read through all the error messages that come up. Unfortunately the terminal will only display a finite number of lines. How do I go about viewing previous lines or changing the maximum number of lines that can be displayed?

7 Answers 7

Like David Purdue suggests, I myself too. I like to have unlimited scrolling.

editTerminalProfile

You can also enable the scrollbar if you want; but I prefer it disabled and use Shift + Page Up and Shift + Page Down keys to change the output frames.

sorry @MycrofD can’t say about that, have not tried 1504.. you should check the script command and see if it fits to your needs. This was one of the adviced ones on my simillar post for TTY console terminal askubuntu.com/questions/487133/…

I tried both checking «unlimited» and setting the scrolling to 4096 lines. Neither works; the terminal insists on showing only 30 lines. I’m well aware of redirection, and Vim seems to do the right thing, but sometimes I just want to scroll. What could I be missing?

Is there a way to do it in the terminal? I want to do it on a Docker container and creating new files is unsupported on the Docker image I’m using so being able to scroll up farther instead of dumping the terminal output to a file would be beneficial.

Note that in modern versions of Ubuntu, it’s under Unnamed -> Scrolling -> uncheck «Limit scrollback to:». (Replace «Unnamed» with the name of your profile if you changed it.)

Читайте также:  Где лежат логи сервера linux

Your Enter key will take you down.

Sadly, this likely won’t work for OP’s «load of errors,» because those errors are likely going to stderr, not stdout, and | redirects only stdout. (I believe your_command 2>&1 | less will work in that case; see unix.stackexchange.com/questions/3514/… for more discussion.)

If you are using the standard Terminal program on a Desktop version of Ubuntu.

  1. Choose Edit -> Profile Preferences from the terminal windows global menu.
  2. Choose the Scrolling tab
  3. Set Scrollback to the desired number of lines (or check the Unlimited box).

Then you can use the scrollbar at the side of the terminal to scroll back through the lengthy command output.

It is in the menu bar for the Terminal program. This usually appears at the top of the screen when Terminal has focus, but you may have to move your mouse to the top of the screen for it to appear.

If you want to see the data and also run it to a file, use tee, e.g,

(spark-shell is just the example interactive program that you might want to capture output from.)

This will allow you to type commands in response to output from the program, but also capture the output to a file.

I recommend you to use output redirection. Type:

user@host:~# command >filename 

Then you can read the file with a text editor for example less and browser through the output:

The question is quite specific about not wanting to do that and instead increasing the scroll buffer size

@PeterKionga-Kamau This question has 7 answers, 2 of which suggest increasing scroll buffer size and the other 5 are basically equivalent to my answer. The question is about reading previous lines and the above is one possible solution for that. Sometimes there exist multiple solutions to a problem. Collecting them is one purpose of this site.

You could start your command in a script session every action an command output would be saved without interfering with the execution unless |less or >file that forbid to have any interaction with the command.

$ script /tmp/command.out Script started, file is /tmp/command.out $ the_command . $ exit Script done, file is /tmp/command.out $ less /tmp/command.out 

You could use | to output your command into more . For example, if I wanted to read an entire text file that wouldn’t fit on screen using cat , I would use:

cat /home/abcd/Downloads/fileName.txt | more 

You can press enter to scroll down one line at a time, and q to exit. Press g to start over.

Hope this could be useful to you.

Источник

Оцените статью
Adblock
detector