duplicating a line


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers duplicating a line
# 1  
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 09:03 AM.. Reason: code tags
# 2  
Old 07-13-2012
Hi, try:
Code:
awk '1; $1==3{print RS s}' s=" 3b ccc ccc ccc" infile

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 07-13-2012
Quote:
Originally Posted by Scrutinizer
Hi, try:
Code:
awk '1; $1==3{print RS s}' s=" 3b ccc ccc ccc" infile

Thanks Scrutinizer, that worked perfectly. Do you mind explaining how it works please.
# 4  
Old 07-13-2012
Sure:
Code:
awk '
 1                            # Perform the default action: {print $0} (print the line)
 $1==3{                       # if the first field equals 3
   print RS s                 # then print a newline and print string "s"
  }
' s=" 3b ccc ccc ccc" infile  # set string "s" to the desired value

This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 07-13-2012
Quote:
Originally Posted by Scrutinizer
Sure:
Code:
awk '
 1                            # Perform the default action: {print $0} (print the line)
 $1==3{                       # if the first field equals 3
   print RS s                 # then print a newline and print string "s"
  }
' s=" 3b ccc ccc ccc" infile  # set string "s" to the desired value

Thanks again
 
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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
Login or Register to Ask a Question

Featured Tech Videos