10-26-2010
Extract X words from end of line, minus last keynumber X
The file contains one line of text followed by a number. I want to take the number X at the end, take it out and display the last X words. X is the key telling me how many words from the end that I want and X will always be less than the number of words, so no problem there.
Example input and desired output:
input: this is the file with the text 1
output: text
input: this is the file with the text 2
output: the text
input: this is the file with the text 3
output: with the text
input: this is the file with the text 4
output: file with the text
I can do this with shell and sed, but it's not elegant and there has to be a simpler solution. awk print column would be simple, except I need to go from the right side of the line instead of the left.
My quick solution, without getting into arithmetic, is to use tr to change spaces to newlines, tail -1 to extract the number, sed to get rid of the last line, then tr to change newlines back to spaces. It works fine, but now I think this will become a permanent part of the script and it's just too ugly and I'm just too braindead to figure out something different.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi
In the foll example the whole text in a single line....
i want to extract text from IPTel to RTCPBase.h.
want to use this acrooss the whole file
Updated: IPTel\platform\core\include\RTCPBase.h \main\MWS2051_Sablime_Int\1... (7 Replies)
Discussion started by: manish205
7 Replies
2. Shell Programming and Scripting
Hi Unix gurus
This is my first post here. I have a file which looks like this:
string1,string2
,string3
,string4
...
...
I need to append all words below first line to the first line, ie
string1,string2,string3,string4,...
Bear in mind that it is not known how many lines follow... (11 Replies)
Discussion started by: lmatlebyane
11 Replies
3. UNIX for Dummies Questions & Answers
This is the line that I am using:
sed 's/^*\({3}*$\)/\1 /' <test.txt >results.txt
and suppose that test.txt contains the following lines:
http://www.example.com/200904/AUS.txt
http://www.example.com/200903/_RUS.txt
http://www.example.com/200902/.FRA.txt
What I expected to see in results.txt... (6 Replies)
Discussion started by: figaro
6 Replies
4. Shell Programming and Scripting
This is my first post, please be nice. I have tried to google and read different tutorials.
The task at hand is:
Input file input.txt (example)
abc123defhij-E-1234jslo
456ujs-W-abXjklp
From this file the task is to grep the -E- and -W- strings that are unique and write a new file... (5 Replies)
Discussion started by: TestTomas
5 Replies
5. Shell Programming and Scripting
Hello all
i know it is pretty hard one but you will manage it all
after noticing and calculating i find a rhythm for the file i want to edit
to copy the last 12 characters in line but the problem is to add after first 25 characters in same line
in other way too copy the last 12 characters... (10 Replies)
Discussion started by: princesasa
10 Replies
6. UNIX for Dummies Questions & Answers
Hi Guys,
Can someone help me with a way to extract text between two words on a single line.
For example if the file has below content I want to extract all text between b and f inclusive of b and f. Aparently sed does this but does it line by line and I guess it cannot read word by word.
... (11 Replies)
Discussion started by: krishnaux
11 Replies
7. Shell Programming and Scripting
Hi
I have a very large data file with several hundred columns and millions of lines.
The important data is in the last set of columns with variable numbers of tab delimited fields in front of it on each line.
Im currently trying sed to get the data out - I want anything beetween :RES and... (4 Replies)
Discussion started by: Manchesterpaul
4 Replies
8. Shell Programming and Scripting
Hi All,
Is there another way to achieve this?
how get short phrase in a sentence with character count of 100 to 155 words end with period but don't end something like 50,000. .
Here's my current script but the output is not good. This will use for my snippets or preview.
grep... (6 Replies)
Discussion started by: lxdorney
6 Replies
9. Shell Programming and Scripting
Hi All,
I need one help to replace particular words in file based on if finds another words in that file .
i.e.
my self is peter@king.
i am staying at north sydney.
we all are peter@king.
How to replace peter to sham if it finds @king in any line of that file.
Please help me... (8 Replies)
Discussion started by: Rajib Podder
8 Replies
10. Shell Programming and Scripting
In the below perl I am trying to extract and print the values AF1=, the GT value, and F or QUAL diveded by 33 (rounded to the nearest whole #). The GT value is at the end after the GT:PL so all the possibilities are read into a hash h, then depending on the value that is in the line the... (1 Reply)
Discussion started by: cmccabe
1 Replies
Cone(C)
LEAF(1) Cone: COnsole Newsreader And E LEAF(1)
NAME
leaf - Lightweight Editor of Ascii(and more) Files
SYNOPSIS
leaf [-f] [-d dictionary] [+n] [filename]
USAGE
leaf is a simple console text file editor, with paragraph word-wrapping and spell checking. leaf is based on the text editor in the Cone
mail reader and composer. leaf opens filename, positioning the cursor on the first line, or line #n, if specified.
This is not really the best editor for program sources. leaf is meant to be used as a quick editor for writing short notes and memos. As
text is typed, words will automatically flow to wrap within a typical 80-character terminal display, even on larger display (due to leaf's
heritage as an editor for E-mail messages, which are traditionally formatted to fit an 80-character display). Word wrapping is "lazy": only
long text lines are wrapped. Short text lines are not folded together. Individual paragraphs are separated by blank lines of text. Press
CTRL-J to optimally rejustify the paragraph under the cursor. The bottom two lines on the screen list which keys to press for other
functions.
Flowed text
The -f option enables "flowed text" formatting convention. Plain text files have no explicit means for joining multiple lines into logical
paragraph. Each line of text is an individual line, and a blank line marks the end of a paragraph.
In a "flowed text" formatted file, each line in a paragraph except the last one ends with a space character. This makes no visual
difference, it's just a marker that this line should be merged with the next line. The last line in the paragraph does not end in a space
character.
The trailing space character is logically removed from each flowed line, and all flowed lines are merged into a logical paragraph that can
be adjusted to any display width. It's important to note that text written in non-ideographic languages, where individual words are
separated by spaces, will have two space characters at the end of every line: the space character that separates the last word on the line
from the first word on the next line, and the a second space character that marks the line as a flowed line.
Because the trailing space marking a flowed line is logically removed, without the second space character there will not be a logical space
between the two words, and if the paragraph's width is adjusted for display the two words may get combined together.
The -f option puts leaf into flowed text mode, removing spaces from each flowed line of text in an opened file. A flowed line is marked on
the screen with a "<" character in the right margin (or a small "next line" character on a UTF-8 display). When saving a file leaf
automatically adds a trailing space to each line that's marked as flowed.
The flowed text mode stays in effect for each file opened in leaf. When opening another file, press CTRL-F to turn flowed mode on or off
for the next file. This change stays in effect until it gets toggled again.
Pressing CTRL-J optimally rejustifies the text in flowed text mode. leaf heuristically determines the start and the end of the paragraph,
readjusts the width of the paragraph, and marks each line as flowed, except the last paragraph line. leaf uses a unicode-based algorithm
for determining whether the last character line needs a space character, in addition to the flowed space marker.
Note
leaf is frequently used to edit plain text email message content. Because email messages assign some semantical meaning to lines of
text that start with spaces or ">" characters, CTRL-J will not rejustify lines of text that begin with a ">" or a space. These lines
will be considered paragraph boundaries, in addition to blank lines.
Spell checking
The -d option sets the name of the dictionary used for spell checking (overriding the default spell checking dictionary set by the
DICTIONARY environment variable). +n sets the initial cursor position to line #n.
SEE ALSO
emacs(1), vi(1)
AUTHOR
Sam Varshavchik
Cone(C) 04/04/2011 LEAF(1)