Regular expression -tab


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regular expression -tab
# 1  
Old 06-29-2011
Regular expression -tab

I have a white-spaces delimited text file. I want to put a tab (\t) between the first and second column (or after the first white-space) and untouch the rest of the white-spaces. Would you let me know the best way to do it.

LA
# 2  
Old 06-29-2011
Code:
 
$perl -pe 's/ /\t/' test
test1   pts/2 Jun 28 11:10 0:21 14041 
test2   pts/3 Jun 28 11:10 0:20 14055 
test3   pts/4 Jun 28 11:11 0:20 14073 
root    pts/4 Jun 28 11:11 0:20 14073

$cat test
test1 pts/2 Jun 28 11:10 0:21 14041 
test2 pts/3 Jun 28 11:10 0:20 14055 
test3 pts/4 Jun 28 11:11 0:20 14073 
root pts/4 Jun 28 11:11 0:20 14073

# 3  
Old 06-29-2011
Thanks...I guess the above code is based on the first white space. In my case, between column 1 and 2 there are some rows with more than one space in between. Is it possible to accomodate it (if more than one spaces are there make it always tab -delimited between column 1 and 2.

LA
# 4  
Old 06-29-2011
what is mean by "column 1 and 2 there are some rows with more than one space in between"

post the sample input file and output file
# 5  
Old 06-29-2011
Below is my input file
Code:
cgd1_10 
cgd1_100 
cgd1_1000 
cgd1_1010 
cgd1_1020 
cgd1_1030 
cgd1_1040 
cgd1_1050 
cgd1_1060   GO:0003674 // GO:0005488 
cgd1_1070   GO:0003674 // GO:0003676 // GO:0005488 
cgd1_1080 
cgd1_1090 
cgd1_110 
cgd1_1100   GO:0003674 // GO:0003824 // GO:0004177 // GO:0006508 // GO:0008150 // GO:0008152 // GO:0008233 // GO:0008238 // GO:0008239 // GO:0008451 // GO:0009987 // GO:0016787 // GO:0016806 // GO:0017088 // GO:0019538 // GO:0043170 // GO:0044237 // GO:0044238 // GO:0044260 // GO:0044267
cgd1_1110   GO:0006629 // GO:0006643 // GO:0006644 // GO:0006650 // GO:0006658 // GO:0006659 // GO:0008150 // GO:0008152 // GO:0008610 // GO:0008654 // GO:0009058 // GO:0009987 // GO:0044237  GO:0044238 // GO:0044255 // GO:0046467 // GO:0046474

I need a a tab only between column 1 and column 2. For example cgd1_1060 is column 1 and GO:0003674 is column 2. when i did the above comment, there were some spaces between column 1 and column 2 after the tab. I want to remove those spaces after the newly introduced tab.
LA
# 6  
Old 06-29-2011
Code:
 
nawk '{printf("%s\t%s",$1,$2); for(i=3;i<=NF;i++){printf(" %s",$i); if(i==NF)printf("\n"); }}' inputfile

# 7  
Old 06-29-2011
This what I got when I implemeted the recent awl command which is not the format I needed as out put

Code:
cgd1_10	cgd1_100	cgd1_1000	cgd1_1010	cgd1_1020	cgd1_1030	cgd1_1040	cgd1_1050	cgd1_1060	GO:0003674 // GO:0005488
cgd1_1070	GO:0003674 // GO:0003676 // GO:0005488
cgd1_1080	cgd1_1090	cgd1_110	cgd1_1100	GO:0003674 // GO:0003824 // GO:0004177 // GO:0006508 // GO:0008150 // GO:0008152 // GO:0008233 // GO:0008238 // GO:0008239 // GO:0008451 // GO:0009987 // GO:0016787 // GO:0016806 // GO:0017088 // GO:0019538 // GO:0043170 // GO:0044237 // GO:0044238 // GO:0044260 // GO:0044267
cgd1_1110	GO:0006629 // GO:0006643 // GO:0006644 // GO:0006650 // GO:0006658 // GO:0006659 // GO:0008150 // GO:0008152 // GO:0008610 // GO:0008654 // GO:0009058 // GO:0009987 // GO:0044237 GO:0044238 // GO:0044255 // GO:0046467 // GO:0046474

My output should be in separate lines even when a line only contain the first string
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

2. Shell Programming and Scripting

Regular expression

Hi I need to write a regular expression for a language. That language can have {a, b, c} as alphabet and it must contain minimum one "a" and minimum one "b". Can u help me to write it plz! thanks in advance! (1 Reply)
Discussion started by: nishrestha
1 Replies

3. UNIX for Dummies Questions & Answers

Help with regular expression

Hi All, Need some help with a regular expression that I cant seem to work on. Say there is the following text - Input We all (need some) help some day (ps: when it rains) and I need to save some hay now. During the rainy season (ps: when it might rain heavily) Seattle gets drenched but not... (3 Replies)
Discussion started by: ManoharMa
3 Replies

4. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

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)
Discussion started by: jessy83
1 Replies

5. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

6. UNIX for Dummies Questions & Answers

ls with regular expression

I currently list and sort all the files in a directory which begin with an Upper Case C and end with the extension '#finished#'. Here is the command I use: ls -tr $currentDir/*.#finished# what i need to do now is list all the files in a directory that begin with upper case C and end... (3 Replies)
Discussion started by: rkgudde
3 Replies

7. Linux

Regular expression to extract "y" from "abc/x.y.z" .... i need regular expression

Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies

8. Shell Programming and Scripting

regular expression

Hi all, My log file is like 19:40:22 INFO :Total time taken to Service External Request---15ms 19:40:22 INFO : External service failed with status KO 19:40:22 FATAL: External service failed with status KO 19:40:22 DEBUG : Batch started with 19:40:22 ERROR: Member: dmidecode.x86_64... (1 Reply)
Discussion started by: subin_bala
1 Replies

9. UNIX for Dummies Questions & Answers

Regular expression

Hello, I have a string of the form " &x.y.z" I would like to grep all the lines when "in" can be found in either x or y. How to write the corresponding regular expression ? I have tried the following but it does not work: grep -i " *&.*(in)*.*.*(in)*.*" Any ideas ? Thank you Max (1 Reply)
Discussion started by: maxvirrozeito
1 Replies

10. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies
Login or Register to Ask a Question