Replace only few string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace only few string
# 1  
Old 04-28-2014
Replace only few string

Hi,

I have a file with 1st column to be gene symbols and rest of the columns its expression value. for each gene symbol if the value if other than NA replace it with the gene symbol

input file:

Code:
RPS6	14.26939	13.7448	14.18972	13.45445	14.47969	13.60643	13.5248
BASP1	10.49898	11.35968	6.051649	8.769745	13.07223	11.28016	11.93768
LDHB	14.2268	12.93219	13.97726	12.44734	13.77943	14.32173	14.2813
HEPACAM2	5.681814	8.440248	NA	NA	11.85384	12.37137	11.33899

outputfile

Code:
RSP6 RSP6 RSP6 RSP6 RSP6 RSP6 RSP6
BASP1 BASP1 BASP1 BASP1 BASP1 BASP1 BASP1
LDHB LDHB LDHB LDHB LDHB LDHB LDHB
HEPACAM2 HEPACAM2   HEPACAM2 HEPACAM2 HEPACAM2

Is it easy to do it in awk?

Thanks,

Last edited by Diya123; 04-28-2014 at 07:30 PM..
# 2  
Old 04-28-2014
Code:
awk '($1 == "NA") { for(N=2; N<=NF; N++) $N=$1 } 1' OFS="\t" inputfile > outputfile

# 3  
Old 04-28-2014
Thanks for the command. but when i use this my output file is same as input file. I does not perform the replace
# 4  
Old 04-28-2014
I made one mistake.

Code:
awk '($1 != "NA") { for(N=2; N<=NF; N++) $N=$1 } 1' OFS="\t" inputfile > outputfile

# 5  
Old 04-28-2014
Ok. When I change it to !=NA then it performs the replace but where it has NA in specific columns it has to turn blank or should be NA only. but that not happening.
# 6  
Old 04-28-2014
Code:
awk '{ for(N=2; N<=NF; N++) if($N == "NA") {$N=""} else { $N=$1 } } 1' OFS="\t" inputfile > outputfile

# 7  
Old 04-28-2014
Code:
awk '{ for (N=2; N<=NF; N++) $N = ($N == "NA") ? "" : $1 } 1' inputfile

or
Code:
awk '{ for (N=2; N<=NF; N++) if ($N != "NA") printf " %s",$1; print ""}' inputfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search partial string in a file and replace the string - UNIX

I have the below string which i need to compare with a file and replace this string in the file which matches closely. Can anyone help me on this. string(Scenario 1)- user::r--,user::ourfrd:r-- String(Scenario 2)- user::r-- File **** # file: /local/Desktop/myfile # owner: me # group:... (6 Replies)
Discussion started by: sarathy_a35
6 Replies

2. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

3. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

4. Shell Programming and Scripting

HPUX find string in directory and filetype and replace string

Hi, Here's my dilemma. I need to replace the string Sept_2012 to Oct_2012 in all *config.py files within the current directory and below directories Is this possible? Also I am trying to find all instances of the string Sept_2012 within files in the current directory and below I have... (13 Replies)
Discussion started by: pure_jax
13 Replies

5. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

6. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

7. Shell Programming and Scripting

Using sed to replace a string in file with a string in a variable that contains spaces

Hi, i call my shell like: my_shell "my project name" my script: #!/bin/bash -vx projectname=$1 sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp cp temp test_config_doxy the following error occurres: sed s/'PROJECT_NAME ... (2 Replies)
Discussion started by: vivelafete
2 Replies

8. Shell Programming and Scripting

awk - replace number of string length from search and replace for a serialized array

Hello, I really would appreciate some help with a bash script for some string manipulation on an SQL dump: I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump. This is quite easy with sed: sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies

9. Shell Programming and Scripting

Search, replace string in file1 with string from (lookup table) file2?

Hello: I have another question. Please consider the following two sample, tab-delimited files: File_1: Abf1 YKL112w Abf1 YAL054c Abf1 YGL234w Ace2 YKL150w Ace2 YNL328c Cup9 YDR441c Cup9 YDR442w Cup9 YEL040w ... File 2: ... ABF1 YKL112W ACE2 YLR131C (9 Replies)
Discussion started by: gstuart
9 Replies

10. UNIX for Dummies Questions & Answers

Search for a string and replace the searched string in the same position in samefile

Hi All, My requisite is to search for the string "0108"(which is the year and has come in the wrong year format) in a particular column say 4th column in a tab delimited file and then replace it with 2008(the correct year format) in the same position where 0108 was found in the same file..The... (27 Replies)
Discussion started by: ganesh_248
27 Replies
Login or Register to Ask a Question