Sponsored Content
Full Discussion: duplicating a line
Top Forums UNIX for Dummies Questions & Answers duplicating a line Post 302671129 by millsy5 on Friday 13th of July 2012 06:46:01 AM
Old 07-13-2012
duplicating a line

I have a text file which is the results of running a tests hundreds of times. For simplicity let's say that each test consists of 5 lines of text numbered 1-5 e.g.

Code:
 1 aaa aaa aaa

 2 bbb bbb bbb

 3 ccc ccc ccc

 4 ddd ddd ddd

 5 eee eee eee

 1 aaa aaa aaa

 2 bbb bbb bbb

 3 ccc ccc ccc

 4 ddd ddd ddd

 5 eee eee eee
etc.

What I need to do is to insert an additional line of text into each test. So now the text file above would read:

Code:
 1 aaa aaa aaa

 2 bbb bbb bbb

 3 ccc ccc ccc

 3b ccc ccc ccc

 4 ddd ddd ddd

 5 eee eee eee

 1 aaa aaa aaa

  2 bbb bbb bbb

  3 ccc ccc ccc

 3b ccc ccc ccc

  4 ddd ddd ddd

  5 eee eee eee
etc.

I tried to do the find and replace with the text editor I'm using but it only replaces a single line. You can't replace a line with itself followed by a blank line followed by the new line. I was hoping it this could done using a script

Last edited by Scrutinizer; 07-13-2012 at 08:03 AM.. Reason: code tags
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

duplicating 1st row of data

Hi, I have data in the following format: data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 I require the final output to be: data1 data1 data1 data1 i only require the 1st line but I need to replicate it in n rows where n is the number of rows where data... (4 Replies)
Discussion started by: ReV
4 Replies

2. Post Here to Contact Site Administrators and Moderators

Sorry for duplicating posts

SORRY FOR DUPLICATING POSTS, COULD U JUST REMOVE THE FIRST ONE. Thank u. (1 Reply)
Discussion started by: vrguha
1 Replies

3. HP-UX

duplicating ignite tapes

I have a B180L controller running HP-UX 10.2 with an internal DDS2 tape drive and an external Surestore DDS (24gb) tape drive. I want to make duplicate copies of ignite tapes from one tape drive to another. What is the best way to do this? (1 Reply)
Discussion started by: garyb
1 Replies

4. UNIX for Dummies Questions & Answers

remove duplicating lines

Hi, i have a webserver logfile and want to count how many page views there have been. I was thinking about removing lines that begin with the same user and same date&time, because it indicates they were just looking at one page and multiple hits were counted. My question is how do I do this?... (6 Replies)
Discussion started by: JudithBorg
6 Replies

5. Red Hat

Duplicating ethernet speed

Hi guys, Suppose you have a server with two ethernet cards (1GB each) and each cards are connecting to two different switches cisco 3750. My question is: How can I setup my server's network interfaces to increase the throughput up to 2GB? is it possible? If not, do you know another way to up... (3 Replies)
Discussion started by: iga3725
3 Replies

6. UNIX for Dummies Questions & Answers

Duplicating MAC linux or net?

hi guys I have a IBM eServer BladeCenter HS12 with Linux Red Hat 5.4 installed on it, it is using Bonding. ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet IPADDR=x.x.x.x NETMASK=x.x.x.x GATEWAY=x.x.x.x USERCTL=no IPV6INIT=no PEERDNS=no BONDING_OPTS="miimon=80... (1 Reply)
Discussion started by: karlochacon
1 Replies

7. Shell Programming and Scripting

mv duplicating directories

Hi Folks, I've put together a script for sorting my backup files into sub folders to be run from a cron job. Each file is named username.tar.gz and the file /etc/trueuserowners contains all users and their owner in the format "user: owner". The script works fine identifying users and their owners... (10 Replies)
Discussion started by: beddo
10 Replies

8. Shell Programming and Scripting

Duplicating and changing sh file

Hello, I have a file named file_1.sh that I want to duplicate into file_2.sh, file_3.sh,..., etc. I also need to change the text within each file so that it would fit the file name. For example, in file_1.sh there is a command to save some output as 'output_1.txt', and also there is an input... (3 Replies)
Discussion started by: haguyw
3 Replies
Template::Test(3pm)					User Contributed Perl Documentation				       Template::Test(3pm)

NAME
Template::Test - Module for automating TT2 test scripts SYNOPSIS
use Template::Test; $Template::Test::DEBUG = 0; # set this true to see each test running $Template::Test::EXTRA = 2; # 2 extra tests follow test_expect()... # ok() can be called any number of times before test_expect ok( $true_or_false ) # test_expect() splits $input into individual tests, processes each # and compares generated output against expected output test_expect($input, $template, \%replace ); # $input is text or filehandle (e.g. DATA section after __END__) test_expect( $text ); test_expect( *DATA ); # $template is a Template object or configuration hash my $template_cfg = { ... }; test_expect( $input, $template_cfg ); my $template_obj = Template->new($template_cfg); test_expect( $input, $template_obj ); # $replace is a hash reference of template variables my $replace = { a => 'alpha', b => 'bravo' }; test_expect( $input, $template, $replace ); # ok() called after test_expect should be declared in $EXTRA(2) ok( $true_or_false ) ok( $true_or_false ) DESCRIPTION
The "Template::Test" module defines the test_expect() and other related subroutines which can be used to automate test scripts for the Template Toolkit. See the numerous tests in the t sub-directory of the distribution for examples of use. PACKAGE SUBROUTINES
text_expect() The "test_expect()" subroutine splits an input document into a number of separate tests, processes each one using the Template Toolkit and then compares the generated output against an expected output, also specified in the input document. It generates the familiar "ok"/"not ok" output compatible with "Test::Harness". The test input should be specified as a text string or a reference to a filehandle (e.g. "GLOB" or "IO::Handle") from which it can be read. In particular, this allows the test input to be placed after the "__END__" marker and read via the "DATA" filehandle. use Template::Test; test_expect(*DATA); __END__ # this is the first test (this is a comment) -- test -- blah blah blah [% foo %] -- expect -- blah blah blah value_of_foo # here's the second test (no surprise, so is this) -- test -- more blah blah [% bar %] -- expect -- more blah blah value_of_bar Blank lines between test sections are generally ignored. Any line starting with "#" is treated as a comment and is ignored. The second and third parameters to "test_expect()" are optional. The second may be either a reference to a Template object which should be used to process the template fragments, or a reference to a hash array containing configuration values which should be used to instantiate a new Template object. # pass reference to config hash my $config = { INCLUDE_PATH => '/here/there:/every/where', POST_CHOMP => 1, }; test_expect(*DATA, $config); # or create Template object explicitly my $template = Template->new($config); test_expect(*DATA, $template); The third parameter may be used to reference a hash array of template variable which should be defined when processing the tests. This is passed to the Template process() method. my $replace = { a => 'alpha', b => 'bravo', }; test_expect(*DATA, $config, $replace); The second parameter may be left undefined to specify a default Template configuration. test_expect(*DATA, undef, $replace); For testing the output of different Template configurations, a reference to a list of named Template objects also may be passed as the second parameter. my $tt1 = Template->new({ ... }); my $tt2 = Template->new({ ... }); my @tts = [ one => $tt1, two => $tt1 ]; The first object in the list is used by default. Other objects may be switched in with a '"-- use $name --"' marker. This should immediately follow a '"-- test --"' line. That object will then be used for the rest of the test, or until a different object is selected. -- test -- -- use one -- [% blah %] -- expect -- blah, blah -- test -- still using one... -- expect -- ... -- test -- -- use two -- [% blah %] -- expect -- blah, blah, more blah The "test_expect()" sub counts the number of tests, and then calls ntests() to generate the familiar ""1..$ntests "" test harness line. Each test defined generates two test numbers. The first indicates that the input was processed without error, and the second that the output matches that expected. Additional test may be run before "test_expect()" by calling ok(). These test results are cached until ntests() is called and the final number of tests can be calculated. Then, the ""1..$ntests"" line is output, along with ""ok $n"" / ""not ok $n"" lines for each of the cached test result. Subsequent calls to ok() then generate an output line immediately. my $something = SomeObject->new(); ok( $something ); my $other = AnotherThing->new(); ok( $other ); test_expect(*DATA); If any tests are to follow after "test_expect()" is called then these should be pre-declared by setting the $EXTRA package variable. This value (default: 0) is added to the grand total calculated by ntests(). The results of the additional tests are also registered by calling ok(). $Template::Test::EXTRA = 2; # can call ok() any number of times before test_expect() ok( $did_that_work ); ok( $make_sure ); ok( $dead_certain ); # <some> number of tests... test_expect(*DATA, $config, $replace); # here's those $EXTRA tests ok( defined $some_result && ref $some_result eq 'ARRAY' ); ok( $some_result->[0] eq 'some expected value' ); If you don't want to call "test_expect()" at all then you can call "ntests($n)" to declare the number of tests and generate the test header line. After that, simply call ok() for each test passing a true or false values to indicate that the test passed or failed. ntests(2); ok(1); ok(0); If you're really lazy, you can just call ok() and not bother declaring the number of tests at all. All tests results will be cached until the end of the script and then printed in one go before the program exits. ok( $x ); ok( $y ); You can identify only a specific part of the input file for testing using the '"-- start --"' and '"-- stop --"' markers. Anything before the first '"-- start --"' is ignored, along with anything after the next '"-- stop --"' marker. -- test -- this is test 1 (not performed) -- expect -- this is test 1 (not performed) -- start -- -- test -- this is test 2 -- expect -- this is test 2 -- stop -- ... ntests() Subroutine used to specify how many tests you're expecting to run. ok($test) Generates an ""ok $n"" or ""not ok $n"" message if $test is true or false. not_ok($test) The logical inverse of ok(). Prints an ""ok $n"" message is $test is false and vice-versa. callsign() For historical reasons and general utility, the module also defines a "callsign()" subroutine which returns a hash mapping the letters "a" to "z" to their phonetic alphabet equivalent (e.g. radio callsigns). This is used by many of the test scripts as a known source of variable values. test_expect(*DATA, $config, callsign()); banner() This subroutine prints a simple banner including any text passed as parameters. The $DEBUG variable must be set for it to generate any output. banner('Testing something-or-other'); example output: #------------------------------------------------------------ # Testing something-or-other (27 tests completed) #------------------------------------------------------------ PACKAGE VARIABLES
$DEBUG The $DEBUG package variable can be set to enable debugging mode. $PRESERVE The $PRESERVE package variable can be set to stop the test_expect() from converting newlines in the output and expected output into the literal strings ' '. HISTORY
This module started its butt-ugly life as the "t/texpect.pl" script. It was cleaned up to became the "Template::Test" module some time around version 0.29. It underwent further cosmetic surgery for version 2.00 but still retains some remarkable rear-end resemblances. Since then the "Test::More" and related modules have appeared on CPAN making this module mostly, but not entirely, redundant. BUGS
/ KNOWN "FEATURES" Imports all methods by default. This is generally a Bad Thing, but this module is only used in test scripts (i.e. at build time) so a) we don't really care and b) it saves typing. The line splitter may be a bit dumb, especially if it sees lines like "-- this --" that aren't supposed to be special markers. So don't do that. AUTHOR
Andy Wardley <abw@wardley.org> <http://wardley.org/> COPYRIGHT
Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Template perl v5.14.2 2011-12-20 Template::Test(3pm)
All times are GMT -4. The time now is 12:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy