Create a new file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Create a new file
# 1  
Old 03-21-2014
Create a new file

Dear All,
I have the following file:

Code:
ID	mir-430	
MI	MI0001527	dre-mir-430a-1
MI	MI0001528	dre-mir-430b-1
MI	MI0001529	dre-mir-430c-1
ID	MIR166	
MI	MI0000199	ath-MIR165a
MI	MI0000200	ath-MIR165b
ID	mir-30	
MI	MI0000088	hsa-mir-30a
MI	MI0000144	mmu-mir-30a
MI	MI0000145	mmu-mir-30b

I would like to obtain a file like this: ( to add ID to each line of the respective family)

Code:
ID	mir-430	
MI	MI0001527	dre-mir-430a-1	mir-430
MI	MI0001528	dre-mir-430b-1	mir-430
MI	MI0001529	dre-mir-430c-1	mir-430
ID	MIR166	
MI	MI0000199	ath-MIR165a	MIR166
MI	MI0000200	ath-MIR165b	MIR166
ID	mir-30	
MI	MI0000088	hsa-mir-30a	mir-30
MI	MI0000144	mmu-mir-30a	mir-30
MI	MI0000145	mmu-mir-30b	mir-30

Could someone help me?

Many thanks for your support,
Paolo
# 2  
Old 03-21-2014
What have you tried so far?
# 3  
Old 03-21-2014
a never ending perl script...

the file is 300000 lines..

---------- Post updated at 05:21 AM ---------- Previous update was at 04:10 AM ----------

could you please help me,

I treid this but I have some problem wiith new lines..

Code:
$file='aa.txt';

open(INFO, $file) or die("Could not open  file.");
open (MYFILE, '>output_data.txt');
#$count = 0;

foreach $line (<INFO>)  {
chomp($line);

if ($line =~/^ID\t(.*)/){
        #print "$1\n";
}
        else
        {
        chomp($line);
        print MYFILE $line;
        print MYFILE "\t";
        print MYFILE $1;
        print MYFILE "\n";
        #print $line;
}}


close(INFO);

# 4  
Old 03-21-2014
Hi ,
If you are not specific to use perl you can try this awk sctipt.
Code:
BEGIN { IFS="\t"; }
      {
      if ($1=="ID") { fid=$2; }
      if ($1!="ID") {
         printf(("%s\t%s\n"),$0,fid);}
      }
END  {}

Put the above script in fid.awk and execute from command line
Code:
awk -f fid.awk {input file} > {output file}

# 5  
Old 03-21-2014
It seems working but I have a bad tab file in my input file (just after my ID..)

Code:
ID      let-7   \t
MI      MI0000001       cel-let-7
MI      MI0000060       hsa-let-7a-1

# 6  
Old 03-21-2014
Hello,

Following may help for same.

Code:
awk '{if($3 ~ /\-.*[[:digit:]]{3}/) {match($3,/\-.*[[:digit:]]{3}/); $(NF+1)=substr($3,RSTART+1,RLENGTH-1); print $0} else {match($3,/\-.*[[:digit:]]{2}/); $(NF+1)=substr($3,RSTART+1,RLENGTH-1); print $0}}' file_name

Output will be as follows.

Code:
ID mir-430
MI MI0001527 dre-mir-430a-1 mir-430
MI MI0001528 dre-mir-430b-1 mir-430
MI MI0001529 dre-mir-430c-1 mir-430
ID MIR166
MI MI0000199 ath-MIR165a MIR165
MI MI0000200 ath-MIR165b MIR165
ID mir-30
MI MI0000088 hsa-mir-30a mir-30
MI MI0000144 mmu-mir-30a mir-30
MI MI0000145 mmu-mir-30b mir-30


Thanks,
R. Singh

Last edited by RavinderSingh13; 03-23-2014 at 11:32 PM.. Reason: changed output according to expectation
# 7  
Old 03-21-2014
What do you mean by bad tab. Can you be more specific.

You mean for the records starting with "ID" having tab ? If tab is at the end of the record it should not be a issue.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Create a text file and a pdf file from Linux command results.

Hello. The task : Using multiple commands like : gdisk -l $SOME_DISK >> $SOME_FILEI generate some text file. For readiness I must insert page break. When the program is finished I want to convert the final text file to a pdf file. When finished, I got two files : One text file and One pdf... (1 Reply)
Discussion started by: jcdole
1 Replies

2. Shell Programming and Scripting

Splitting a text file into smaller files with awk, how to create a different name for each new file

Hello, I have some large text files that look like, putrescine Mrv1583 01041713302D 6 5 0 0 0 0 999 V2000 2.0928 -0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 5.6650 0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 3.5217 ... (3 Replies)
Discussion started by: LMHmedchem
3 Replies

3. Shell Programming and Scripting

How to compare 2 files and create a result file with unmatched lines from first file.?

HI, I have 2 text files. file1 and file2. file1.txt (There are no duplicates in this file) 1234 3232 4343 3435 6564 6767 1213 file2.txt 1234,wq,wewe,qwqw 1234,as,dfdf,dfdf 4343,asas,sdds,dsds 6767,asas,fdfd,fdffd I need to search each number in file1.txt in file2.txt's 1st... (6 Replies)
Discussion started by: Little
6 Replies

4. Shell Programming and Scripting

create txt file form data file and add some line on it

Hi Guys, I have file A.txt File A Data AK1521 AK2536 AK3164 I want create text file of all data above and write some data on each file. want Output on below folder /home/kka/out AK1521.txt Hi Welocme (3 Replies)
Discussion started by: asavaliya
3 Replies

5. Shell Programming and Scripting

How to create a log file that simply shows the name of a file and what directory it was moved to.

Newbie...Thank you for your help. I am creating my first script that simply generates subdirectories to organize video, music, and text files within those subdirectories from my current working directory. PROBLEM: I am trying to write a log file that contains, for each file, the original file... (0 Replies)
Discussion started by: BartleDoo
0 Replies

6. Shell Programming and Scripting

Create shell script to extract unique information from one file to a new file.

Hi to all, I got this content/pattern from file http.log.20110808.gz mail1 httpd: Account Notice: close igchung@abc.com 2011/8/7 7:37:36 0:00:03 0 0 1 mail1 httpd: Account Information: login sastria9@abc.com proxy sid=gFp4DLm5HnU mail1 httpd: Account Notice: close sastria9@abc.com... (16 Replies)
Discussion started by: Mr_47
16 Replies

7. Shell Programming and Scripting

Newbie.. Find if a file exists and open, if not create the desired file..

Hey all, I'm brand new to script writing, I'm wanting to make a script that will ask for a file and then retrieve that file if it exists, and if it doesn't exist, create the file with the desired name, and I'm completely stuck.. so far.. #! bin/bash echo "Enter desired file" read "$file" if ... (5 Replies)
Discussion started by: Byrang
5 Replies

8. Shell Programming and Scripting

how to create file.txt and add current date in file content

Hey guy, how to make bash script to create foo.txt file and add current date into file content and that file always append. example: today the script run and add today date into content foo.txt and tomorrow the script will run and add tomorrow date in content foo.txt without remove today... (3 Replies)
Discussion started by: chenboly
3 Replies

9. Shell Programming and Scripting

Read a file and search a value in another file create third file using AWK

Hi, I have two files with the format shown below. I need to read first field(value before comma) from file 1 and search for a record in file 2 that has the same value in the field "KEY=" and write the complete record of file 2 with corresponding field 2 of the first file in to result file. ... (11 Replies)
Discussion started by: King Kalyan
11 Replies
Login or Register to Ask a Question