Sponsored Content
Top Forums Shell Programming and Scripting Extracting formatted text and numbers Post 302406401 by alister on Monday 22nd of March 2010 07:10:58 PM
Old 03-22-2010
Hello, DFr0st:

Your sample data in a file called data:
Code:
$ cat data
1964.01.17 121427.6 24.268s 177.074w 158.0km 4.8 Tonga 1
ep :aang= -18.5 90% : l=267.9,az= -18.5,pl=35.9
ellipse: a= 188.6 ellipsoid: l= 59.3,az= 158.6,pl=54.0
(90% ) : b= 25.2 semi-axis: l= 29.4,az=-109.5,pl= 1.4
1964.01.18 41437.6 30.000s 177.900w 48.0km 4.8 Tonga

Passing it through a tr filter to remove all characters that are not a decimal digit, decimal point, minus sign, space, or newline yields:
Code:
$ tr -cd '[-0-9. \n]' < data
1964.01.17 121427.6 24.268 177.074 158.0 4.8  1
  -18.5 90  267.9 -18.535.9
  188.6   59.3 158.654.0
90    25.2 -  29.4-109.5 1.4
1964.01.18 41437.6 30.000 177.900 48.0 4.8

Assuming that your sample data is representative of the two forms of records you mentioned, and that you did not neglect to mention any special cases, a line with 6 numbers is a single line record that only requires appending three zeros; a line with 7 numbers is the start of a multiline record and is followed by three lines of 4, 3, and 5 fields respectively (all field counts are after tr filtering). The following AWK assembles what remains into what's desired, before passing it through another tr filter to squeeze mulitple spaces into a single space:
Code:
$ tr -cd '[-0-9. \n]' < data | awk 'NF==6{print $0,0,0,0} NF==7{$2=""; $NF=""; s=$0; getline; d=$1; getline; a=$1; getline; print s,d,a,$2}' | tr -s ' '
1964.01.17 24.268 177.074 158.0 4.8 -18.5 188.6 25.2
1964.01.18 41437.6 30.000 177.900 48.0 4.8 0 0 0

Regards,
Alister

Last edited by alister; 03-22-2010 at 10:56 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert DATE string to a formatted text

Hi guys, i need your help. I need to convert a date like this one 20071003071023 , to a formated date like 20071003 07:10:23 . Could this be possible ? Regards, Osramos (6 Replies)
Discussion started by: osramos
6 Replies

2. Shell Programming and Scripting

Script or command: Formatted text to CSV

Hi Everyone, I've been using this site as a great resource to aid me with simple search and replace tasks. I still consider myself a novice and now I've been pulling my hair out over this problem. Any hints or suggestions would be welcome! I have a text file in a format like this name:... (6 Replies)
Discussion started by: regexnub
6 Replies

3. Shell Programming and Scripting

print formatted text to the printer

Hello!!! I am using shell script that print some formated text on the screen (example) ======== hello I am ... ======== Is it possible to print this information to the printer exactly as I see it on the screen??? (6 Replies)
Discussion started by: tdev457
6 Replies

4. UNIX for Dummies Questions & Answers

Print numbers and associated text belonging to an interval of numbers

##### (0 Replies)
Discussion started by: lucasvs
0 Replies

5. UNIX for Dummies Questions & Answers

Extracting lines from a text file based on another text file with line numbers

Hi, I am trying to extract lines from a text file given a text file containing line numbers to be extracted from the first file. How do I go about doing this? Thanks! (1 Reply)
Discussion started by: evelibertine
1 Replies

6. Shell Programming and Scripting

Extracting lines from text files in folder based on the numbers in another file

Hello, I have a file ff.txt that looks as follows *ABNA.txt 356 24 36 112 *AC24.txt 457 458 321 2 ABNA.txt and AC24.txt are the files in the folder named foo1. Based on the numbers in the ff.txt file, I want to extract the lines from the corresponding files in the foo1 folder and... (2 Replies)
Discussion started by: mohamad
2 Replies

7. Shell Programming and Scripting

Extracting numbers

Hi I am part of a academic organization and I want to send a fax to the students however there must be a quicker way to get the fax numbers extracted from the online forms they sent me. The file looks like this (numbers are fake in order to protect identity): Biochemistry Major Michael... (3 Replies)
Discussion started by: phil_heath
3 Replies

8. Shell Programming and Scripting

Split files with formatted numbers

How to split the file and have suffix with formatted numbers Tried the following code awk '{filename="split."int((NR-1)/2)".txt"; print >> filename}' split.txt Current Result Expected Result (21 Replies)
Discussion started by: bobbygsk
21 Replies

9. Shell Programming and Scripting

Extracting values based on line-column numbers from multiple text files

Dear All, I have to solve the following problems with multiple tab-separated text file but I don't know how. Any help would be greatly appreciated. I have access to Linux mint (but not as a professional). I have multiple tab-delimited files with the following structure: file1: 1 44 2 ... (5 Replies)
Discussion started by: Bastami
5 Replies

10. Shell Programming and Scripting

Sum up formatted numbers with comma separation

I need to sum up the values in field nr 5 in a data file that contains some file listing. The 5th field denotes the size of each file and following are some sample values. 1,775,947,633 4,738 7,300 16,610 15,279 0 0 I tried the following code in a shell script. awk '{sum+=$5} END{print... (4 Replies)
Discussion started by: krishmaths
4 Replies
POD2TEXT(1)						 Perl Programmers Reference Guide					       POD2TEXT(1)

NAME
pod2text - Convert POD data to formatted ASCII text SYNOPSIS
pod2text [-aclost] [--code] [-i indent] [-q quotes] [-w width] [input [output]] pod2text -h DESCRIPTION
pod2text is a front-end for Pod::Text and its subclasses. It uses them to generate formatted ASCII text from POD source. It can option- ally use either termcap sequences or ANSI color escape sequences to format the text. input is the file to read for POD source (the POD can be embedded in code). If input isn't given, it defaults to STDIN. output, if given, is the file to which to write the formatted output. If output isn't given, the formatted output is written to STDOUT. OPTIONS
-a, --alt Use an alternate output format that, among other things, uses a different heading style and marks "=item" entries with a colon in the left margin. --code Include any non-POD text from the input file in the output as well. Useful for viewing code documented with POD blocks with the POD rendered and the code left intact. -c, --color Format the output with ANSI color escape sequences. Using this option requires that Term::ANSIColor be installed on your system. -i indent, --indent=indent Set the number of spaces to indent regular text, and the default indentation for "=over" blocks. Defaults to 4 spaces if this option isn't given. -h, --help Print out usage information and exit. -l, --loose Print a blank line after a "=head1" heading. Normally, no blank line is printed after "=head1", although one is still printed after "=head2", because this is the expected formatting for manual pages; if you're formatting arbitrary text documents, using this option is recommended. -m width, --left-margin=width, --margin=width The width of the left margin in spaces. Defaults to 0. This is the margin for all text, including headings, not the amount by which regular text is indented; for the latter, see -i option. -o, --overstrike Format the output with overstruck printing. Bold text is rendered as character, backspace, character. Italics and file names are ren- dered as underscore, backspace, character. Many pagers, such as less, know how to convert this to bold or underlined text. -q quotes, --quotes=quotes Sets the quote marks used to surround C<> text to quotes. If quotes is a single character, it is used as both the left and right quote; if quotes is two characters, the first character is used as the left quote and the second as the right quoted; and if quotes is four characters, the first two are used as the left quote and the second two as the right quote. quotes may also be set to the special value "none", in which case no quote marks are added around C<> text. -s, --sentence Assume each sentence ends with two spaces and try to preserve that spacing. Without this option, all consecutive whitespace in non- verbatim paragraphs is compressed into a single space. -t, --termcap Try to determine the width of the screen and the bold and underline sequences for the terminal from termcap, and use that information in formatting the output. Output will be wrapped at two columns less than the width of your terminal device. Using this option requires that your system have a termcap file somewhere where Term::Cap can find it and requires that your system support termios. With this option, the output of pod2text will contain terminal control sequences for your current terminal type. -w, --width=width, -width The column at which to wrap text on the right-hand side. Defaults to 76, unless -t is given, in which case it's two columns less than the width of your terminal device. DIAGNOSTICS
If pod2text fails with errors, see Pod::Text and Pod::Parser for information about what those errors might mean. Internally, it can also produce the following diagnostics: -c (--color) requires Term::ANSIColor be installed (F) -c or --color were given, but Term::ANSIColor could not be loaded. Unknown option: %s (F) An unknown command line option was given. In addition, other Getopt::Long error messages may result from invalid command-line options. ENVIRONMENT
COLUMNS If -t is given, pod2text will take the current width of your screen from this environment variable, if available. It overrides termi- nal width information in TERMCAP. TERMCAP If -t is given, pod2text will use the contents of this environment variable if available to determine the correct formatting sequences for your current terminal device. SEE ALSO
Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Parser The current version of this script is always available from its web site at <http://www.eyrie.org/~eagle/software/podlators/>. It is also part of the Perl core distribution as of 5.6.0. AUTHOR
Russ Allbery <rra@stanford.edu>. COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001 by Russ Allbery <rra@stanford.edu>. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. perl v5.8.9 2009-04-13 POD2TEXT(1)
All times are GMT -4. The time now is 11:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy