Sponsored Content
Full Discussion: Truncate terminal output
Top Forums Shell Programming and Scripting Truncate terminal output Post 302488354 by scyptnex on Monday 17th of January 2011 12:21:54 AM
Old 01-17-2011
Truncate terminal output

Hello

Using BASH under Ubuntu 10.4 lts + XMonad

My script is almost perfect but i'm stuck at the last hurdle:
I need a sort of modified 'echo' which truncates its output to the width of the terminal

I can find the terminal's width with 'stty size' but i dont know how to then convert input lines to that printing length:
  • The lines may contain multiple 'randomly' placed tab characters
  • The lines may contain special colour formatting escape sequences which should not effect the 'length' of the line

Context:
This is a 'find in files' utility which interactively finds using 'find' and 'grep' regex patterns in the directory subtree, opens the file in my favourite editor at the line wit the match, and interactively modifies the search pattern and re-performs the search. Complete with pretty coloured output. Here i'm trying to prevent long lines that get found from spilling onto new lines in the terminal and disrupting the formatted output Smilie

More context:
The actual formatted output is:
Code:
<tab><col>[0-9]*</col><tab><col>[0-9]*</col><tab><line />

where <col> are the invisible coloured terminal formatting bits and <line /> is the only part which is allowed to be truncated (we assume the terminal is never thin enough to not print the 2 numeric fields)
None, one, or both numeric fields may exceed tab width under normal operation normal
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Output to terminal and file at the same time

Hi all The makefile of a large project produces hundreds of lines of output, which I can't look at any more when the build is finished. If I simply redirect the output to a file, I can't see the progress of the building process... Is there a possibility to redirect the output to a file and at... (1 Reply)
Discussion started by: Charlie
1 Replies

2. Programming

output to terminal

How can I write to another user's pseudo tty, but not to its current prompt position (as in open("/dev/pts007", ...) followed by write() ). Instead I would like to write to the top center of the screen using color red, for example. Like curses, but from another console. (6 Replies)
Discussion started by: andreis
6 Replies

3. Solaris

terminal output - save to file?

I have a window open on my ultra 10 - a terminal window connecting to a server. Is there any way I can log all output to this window to a log file on my ultra 10 ? (2 Replies)
Discussion started by: frustrated1
2 Replies

4. Solaris

how to redirect my output in a new terminal

Hi all, i type a command along with dtterm what i would like to have is that the output of the command to be shown in the new terminal . Any Idea on how to acheive this? (0 Replies)
Discussion started by: Sayantan
0 Replies

5. UNIX for Advanced & Expert Users

Terminal Output to a File ??

Hey, How can I transfer the terminal output to a file ? For example : command "fuser" returns the "process-id" and prints the output on the terminal, but I want that output to a file as well. How can I do that ? /clocal/mqbrkrs/user/mqsiadm/sanjay/AccessMonitor $ fuser -uf... (2 Replies)
Discussion started by: varungupta
2 Replies

6. Shell Programming and Scripting

How can I scroll the terminal output with Expect

Hi, I'm trying to come up with a simple expect script that allows me to login to a system and run a single command ... something like this: #!/usr/bin/expect -f # let's set some variables #set password set ipaddr set ponumber set hostname set timeout -1 # let's now connect to the... (0 Replies)
Discussion started by: danielsf
0 Replies

7. UNIX for Advanced & Expert Users

Performance impact of terminal output

Hello, I am doing fluid simulations using OpenFOAM. This program produces a lot of output every time step. Producing output is surely not the most time consuming part, but I wonder whether writing output to the terminal or writing it into a file is faster. With thousands of time steps a... (1 Reply)
Discussion started by: Chuck Morris
1 Replies

8. Shell Programming and Scripting

Redirect output from terminal

i make a shell script. There has a line wget https://cisofy.com/files/lynis-2.1.0-88394c1affb9e23bd7390098947b3fd4b04e35e8.tar.gzWhen this line execute terminal show some text like this Resolving cisofy.com (cisofy.com)... 149.*.*.* Connecting to cisofy.com (cisofy.com)|149.*.*.*|:4444...... (4 Replies)
Discussion started by: Devils-ey3
4 Replies

9. Shell Programming and Scripting

All output to terminal pager by default

How can I have all my output to a terminal pager by default. I want all output to pause once screen is full. Piping to more does not work if the app/script is interactive (2 Replies)
Discussion started by: aydj
2 Replies

10. Shell Programming and Scripting

Print Terminal Output Exactly how it Appears in the Terminal to a New Text File

Hello All, I have a text file containing output from a command that contains lots of escape/control characters that when viewed using vi or view, looks like jibberish. But when viewed using the cat command the output is formatted properly. Is there any way to take the output from the cat... (7 Replies)
Discussion started by: mrm5102
7 Replies
tty(1)							      General Commands Manual							    tty(1)

NAME
tty - Returns pathname of terminal device SYNOPSIS
tty [-s] The tty command writes the full pathname of your terminal device to standard output. The tty command may also be used to determine if standard input is a terminal. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: tty: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
Suppresses reporting the pathname. The XCU specification states that -s option is obsolete and recommends the portable applications use test -t 0 instead of tty -s. OPERANDS
None DESCRIPTION
The command tty -s evaluates as TRUE if standard input is a display and FALSE if it is not. [Tru64 UNIX] The file /dev/tty is a special file always refers to your controlling terminal, although it also may have another name like /dev/console or /dev/tty2. To avoid writing undesirable output to an output file--for example, to write a prompt in a shell script to the screen, while writing the response to the prompt to an output file--redirect standard output to /dev/tty. NOTES
While the -s option is useful if only the exit code is wanted, it does not rely on any ability to form a valid pathname. For a portable application you should use the command test -t 0. EXIT STATUS
The following exit values are returned: Successful completion. Standard input is not a display. [Tru64 UNIX] Invalid options specified. [Tru64 UNIX] An error occurred. DIAGNOSTICS
[Tru64 UNIX] Your standard input is not a display and you did not specify the -s option. EXAMPLES
To display full pathname of your terminal device, enter: tty To test whether or not the standard input is a terminal device, create a shell script containing the following: if tty -s then echo 'Output is a display' else echo 'Output is not a display' fi If the standard input is a terminal device, this displays the Output is a display message. If the standard input is not a terminal device, it displays the Output is not a display message. ENVIRONMENT VARIABLES
The following environment variables affect the execution of tty: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. FILES
Pseudodevice representing the user's controlling terminal. SEE ALSO
Commands: stty(1), test(1) Routines: ttyname(3) Files: tty(7) Standards: standards(5) tty(1)
All times are GMT -4. The time now is 10:53 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy