gawk 'NR==1{ # For the very first line ( NR is line number )
for(i=1;i<=NF;i++) # Loop over all columns from 1 to NF (number of fields)
if($i~/FE/)f[n++]=i # If the field contains NE, set F[n]=(field number). n increments itself because of the ++.
# I wonder if that line is supposed to be f[n++]=$i, to save the column itself.
}
{ # For every line
for(i=0;i<n;i++) # Loop from 0 to n, from the block above
printf "%s%s",i?" ":"",$f[i] # Print each column in array f in order.
# For the first column, print nothing before it.
# For every other column, print : first.
print "" # Print a blank line, just to put a newline at the end
}'
Close. Comments below are related to the text marked in red above:
"NE" should be "FE".
No. F[n++]=i is correct. F[0] will be the field number of the 1st field with a header containing "FE"; F[1] will be the field number of the 2nd field with a header containing "FE", ... F[n-1] will be the field number of the nth field containing "FE". Since there is no next command associated with the NR==1 condition, the header for all fields containing "FE" will be printed by the next clause.
The character printed before the 1st field output is an empty string; the output field separator output before other fields is a single <space> character.
This User Gave Thanks to Don Cragun For This Post:
hi friends!
i have a script where a execute a veritas command, available_media wich retrieves me a list of tapes .lst
then i execute
cat /tmp/listtapes.lst | grep -v VL |sed '/^$/d'|awk -F, '{print $1, $3, $4, $9}
' > /tmp/media1.lst
but it prints all the columns instead of the four... (3 Replies)
Hi,
i have a file with content
00:01:20.613 'integer32' 459254
00:01:34.158 459556
00:01:36.626 'integer32' 459255
and i want to print only output as below
00:01:20.613 459254
00:01:34.158 459556
00:01:36.626 459255
i dont want the word 'integer32' which is the second column.
i... (2 Replies)
I have a one-line command,
lsusb | awk '{ $1=""; $2=""; $3=""; $4=""; $5=""; $6=""; print $0 }'
It works, and gives the results I expect, I was just wondering if I am missing some easier way to nullify the first 6 column variables?
Something like,
lsusb | awk '{ $(1-6)=""; print $0 }'
But... (10 Replies)
hi guys,
i have the following problem: i have a matrix with 3 columns and over 450 rows like this:
0.0165 0.0151 0.0230
0.0143 0.0153 0.0134
0.0135 0.0123 0.0195
0.0173 0.0153 0.0182
i now want to calculate the average of every line and divide every element of this... (1 Reply)
Is it possible to modify file like this.
1. Remove all the duplicate names in a define column i.e 4th col
2. Count the no.of unique names separated by ";" and print as a 5th col
thanx in advance!!
Q
input
c1 30 3 Eh2
c10 96 3 Frp
c41 396 3 Ua5;Lop;Kol;Kol
c62 2 30 Fmp;Fmp;Fmp
... (5 Replies)
Hi guys,
I have hundreds file like this, here I only show two of them:
file 1
feco4_s_BB95.log ZE_1=-1717.5206260
feco4_t_BB95.log ZE_1=-1717.5169250
feco5_s_BB95.log ZE_1=-1830.9322060... (11 Replies)
I am working on a file with several columns as below
MO_NAME,FAULT_TYPE,CLASS,CODE1,CODE2,CODE3
RXOCF-101,BTS INTERNAL,FAULT CODES CLASS 2A,53,58
RXOCF-101,BTS INTERNAL,FAULT CODES CLASS 2B,24
RXOCF-101,BTS INTERNAL,FAULT CODES CLASS 2A,33
RXOCF-101,BTS INTERNAL,FAULT CODES CLASS 2D,57 ... (12 Replies)
Hi,
Can anyone help with the below please?
I have written some code which takes an input file, and and prints the contents out to a new file - it then loops round and prints the same columns, but increments the ID column by 1 each time.
Input file;
NAME,1,15-Dec-15,
NAME,1,21-Dec-15,... (9 Replies)
Hi,
I'm trying to copy and paste the sixth column from a bunch of files into a single file having each column pasted in separate columns (and not one after each other in just one column.)
I tried this code but works only partially because it copied and pasted 50 rows of each column... (6 Replies)
Discussion started by: Frastra
6 Replies
LEARN ABOUT DEBIAN
io::async::protocol::linestream
IO::Async::Protocol::LineStream(3pm) User Contributed Perl Documentation IO::Async::Protocol::LineStream(3pm)NAME
"IO::Async::Protocol::LineStream" - stream-based protocols using lines of text
SYNOPSIS
Most likely this class will be subclassed to implement a particular network protocol.
package Net::Async::HelloWorld;
use strict;
use warnings;
use base qw( IO::Async::Protocol::LineStream );
sub on_read_line
{
my $self = shift;
my ( $line ) = @_;
if( $line =~ m/^HELLO (.*)/ ) {
my $name = $1;
$self->invoke_event( on_hello => $name );
}
}
sub send_hello
{
my $self = shift;
my ( $name ) = @_;
$self->write_line( "HELLO $name" );
}
This small example elides such details as error handling, which a real protocol implementation would be likely to contain.
DESCRIPTION EVENTS
The following events are invoked, either using subclass methods or CODE references in parameters:
on_read_line $line
Invoked when a new complete line of input is received.
PARAMETERS
The following named parameters may be passed to "new" or "configure":
on_read_line => CODE
CODE reference for the "on_read_line" event.
METHODS
$lineprotocol->write_line( $text )
Writes a line of text to the transport stream. The text will have the end-of-line marker appended to it; $text should not end with it.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>
perl v5.14.2 2012-10-24 IO::Async::Protocol::LineStream(3pm)