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
wc(1) General Commands Manual wc(1)
NAME
wc - Counts the lines, words, characters, and bytes in a file
SYNOPSIS
wc [-c | -m] [-lw] [file...]
The wc command counts the lines, words, and characters or bytes in a file, or in the standard input if you do not specify any files, and
writes the results to standard output. It also keeps a total count for all named files.
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
wc: XCU5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
OPTIONS
Counts bytes in the input. Counts lines in the input. Counts characters in the input. Counts words in the input.
OPERANDS
Specifies the pathname of the input file. If this operand is omitted, standard input is used.
DESCRIPTION
A word is defined as a string of characters delimited by white space as defined in the X/Open Base Definitions for XCU4.
The wc command counts lines, words, and bytes by default. Use the appropriate options to limit wc output. Specifying wc without options
is the equivalent of specifying wc -lwc. If any options are specified, only the requested information is output.
The order in which counts appear in the output line is lines, words, bytes. If an option is omitted, then the corresponding field in the
output is omitted. If the -m option is used, then character counts replace byte counts.
When you specify one or more files, wc displays the names of the files along with the counts. If standard input is used, then no file name
is displayed.
EXIT STATUS
The following exit values are returned: Successful completion. An error occurred.
EXAMPLES
To display the number of lines, words, and bytes in the file text, enter: wc text
This results in the following output: 27 185 722 text
The numbers 27, 185, and 722 are the number of lines, words, and bytes, respectively, in the file text. To display only one or two
of the three counts include the appropriate options. For example, the following command displays only line and byte counts: wc -cl
text
27 722 text To count lines, words, and bytes in more than one file, use wc with more than one input file or with a file name pat-
tern. For example, the following command can be issued in a directory containing the files text, text1, and text2: wc -l text*
27 text 112 text1 5 text2 144 total
The numbers 27, 112, and 5 are the numbers of lines in the files text, text1, and text2, respectively, and 144 is the total number
of lines in the three files. The file name is always appended to the output. To obtain a pure number for things like reporting
purposes, pipe all input to the wc command using cat. For example, the following command will report the total count of characters
in all files in a directory. echo There are `cat *.c | wc -c` characters in *.c files
There are 1869 characters in *.c files
ENVIRONMENT VARIABLES
The following environment variables affect the execution of wc: 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 and input files) and which characters
are defined as white space characters. Determines the locale for the format and contents of diagnostic messages written to standard error
and informative messages written to standard output. Determines the location of message catalogues for the processing of LC_MESSAGES.
SEE ALSO
Commands: cksum(1), ls(1)
Standards: standards(5)
wc(1)