awk '
BEGIN {
eol="[.?!;:]$" # There is a problem with Mr. and Mrs.
maxWords=0
}
{
if (NF>maxWords) {
maxWords=NF
longestSentence = $0
}
for (i=1;i<=NF;i++) {
sub(eol "$", "", $i)
a[$i]++
}
}
END{
for(k in a) print ++ii, k, a[k];
print ""
print("There were", NR, "sentences and the longest sentence had", maxWords, "words and there were", length(a), "unique words")
print ("The longest sentence was:", longestSentence)
}
' infile
Ive got a file with words and also numbers.
Bla BLA
10 10
11 29
12 89
13 35
And i need to change "10,29,89,25" and also remove anything that contains actually words... (4 Replies)
I can print a line with an expression using this:
awk '/regex/'
I can print the line immediately before an expression using this:
awk '/regex/{print x};{x=$0}'
How do I print the line immediately before and then the line with the expression? (2 Replies)
Hi All,
I've got some strange behaviour going on when trying to manipulate a file that contains spaces.
My input file looks something like this:
xxxxxxxxx,yyyy,sss sss sss,bbbbbbb
If I use awk:
When running from the command line I get:
sss sss sss
But when running from a... (7 Replies)
Hello world,
I was wondering if there is a nicer way to write the following code (in AWK):
awk '
FNR==NR&&$1~/^m$/{tok1=1}
FNR==NR&&$1~/^m10$/{tok1=1}
' my_file
In fact, it looks for m2, m4, m6, m8 and m10 and then return a positive flag. The problem is how to define 10 thanks... (3 Replies)
I'm working on a different stage of a project that someone helped me address elsewhere in these threads.
The .docs I'm cycling through look roughly like this:
1 of 26 DOCUMENTS
Copyright 2010 The Age Company Limited
All Rights Reserved
The Age (Melbourne, Australia)
November 27, 2010... (9 Replies)
Hi,
I have a bunch of records within a directory where each one has this form:
(example file1)
1 2 50 90 80 90 43512 98 0909 79869 -9 7878 33222 8787 9090 89898 7878 8989 7878 6767 89 89 78676 9898 000 7878 5656 5454 5454
and i want for all of these files to be... (3 Replies)
How do I use single quotes as record separator in awk?
I just couldn't figure that out. I know how to use single quotes as field separator, and double quotes as both field and record separator ... (1 Reply)
Hi all,
How am I read a file, find the match regular expression and overwrite to the same files.
open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat";
open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat";
while (<DESTINATION_FILE>)
{
# print... (1 Reply)
Hello to all,
Please some help on this. I have the file in format as below.
How can I set the record separator as the string below in red
"No. Time Source Destination Protocol Length Info"
I've tried code below but it doesn't seem to... (6 Replies)
Discussion started by: cgkmal
6 Replies
LEARN ABOUT OSX
perlio::eol
eol(3) User Contributed Perl Documentation eol(3)NAME
PerlIO::eol - PerlIO layer for normalizing line endings
VERSION
This document describes version 0.14 of PerlIO::eol, released December 18, 2006.
SYNOPSIS
binmode STDIN, ":raw:eol(LF)";
binmode STDOUT, ":raw:eol(CRLF)";
open FH, "+<:raw:eol(LF-Native)", "file";
binmode STDOUT, ":raw:eol(CRLF?)"; # warns on mixed newlines
binmode STDOUT, ":raw:eol(CRLF!)"; # dies on mixed newlines
use PerlIO::eol qw( eol_is_mixed );
my $pos = eol_is_mixed( "mixed
string
" );
DESCRIPTION
This layer normalizes any of "CR", "LF", "CRLF" and "Native" into the designated line ending. It works for both input and output handles.
If you specify two different line endings joined by a "-", it will use the first one for reading and the second one for writing. For
example, the "LF-CRLF" encoding means that all input should be normalized to "LF", and all output should be normalized to "CRLF".
By default, data with mixed newlines are normalized silently. Append a "!" to the line ending will raise a fatal exception when mixed
newlines are spotted. Append a "?" will raise a warning instead.
It is advised to pop any potential ":crlf" or encoding layers before this layer; this is usually done using a ":raw" prefix.
This module also optionally exports a "eol_is_mixed" function; it takes a string and returns the position of the first inconsistent line
ending found in that string, or 0 if the line endings are consistent.
The "CR", "LF", "CRLF" and "NATIVE" constants are also exported at request.
AUTHORS
Audrey Tang <autrijus@autrijus.org>.
Janitorial help by Gaal Yahas <gaal@forum2.org>.
Inspired by PerlIO::nline by Ben Morrow, <PerlIO-eol@morrow.me.uk>.
COPYRIGHT
Copyright 2004-2006 by Audrey Tang <audreyt@audreyt.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See <http://www.perl.com/perl/misc/Artistic.html>
perl v5.16.2 2006-12-15 eol(3)