Modifying output column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modifying output column
# 1  
Old 07-25-2013
Modifying output column

Hi friends,
I have file as follow

Code:
D1    pin16I    pin20I
R1    pin20F    pin20D
VCC1    pin20A    pin16G

I want to modify it second and third column.
I want to just change the last character of 2nd and 3rd column with some condition.
The condition is if last char of second column is in between [A-E] then print e.g pin16A. However if character is between [F-J] then print it as pin16F. This condition is for all pin not just for pin16 its for all pin.

Thanks and Regards,

Last edited by Scott; 07-25-2013 at 06:29 AM.. Reason: Code tags
# 2  
Old 07-25-2013
what have you tried so far?

just a hint: you can extract the last character of a string by something like below.

Code:
echo $string| awk '{print substr($0,length($0),1)}'

# 3  
Old 07-25-2013
@diehard
With 28 posts, you should now that you should use code tags
And also you should post an example output.

This should work, but its some ugly.
Code:
awk '	{
	printf "%s ",$1
	}
	{	
	if ($2~/pin[0-9][0-9][A-E]/) printf "%.5sA ",$2; 
	else if ($2~/pin[0-9][0-9][F-J]/) printf "%.5sF ",$2;
	else printf "error "
	}
	{	
	if ($3~/pin[0-9][0-9][A-E]/) printf "%.5sA\n",$3; 
	else if ($3~/pin[0-9][0-9][F-J]/) printf "%.5sF\n",$3;
	else printf "error\n"
	}
	' file

Code:
D1 pin16F pin20F
R1 pin20A pin20A
VCC1 pin20A pin16F

This User Gave Thanks to Jotne For This Post:
# 4  
Old 07-25-2013
Thanks man!!!!!!

Actually I used it after long time so forget to use code tag.Sorry for that.

Thanks Again!!!!
# 5  
Old 07-25-2013
Some more clean version that can be expanded if needed.
Code:
awk '	{ printf $1; test($2); test($3); print "" }

	function test(num)
	{if (num~/pin[0-9][0-9][A-E]/) printf " %.5sA",num; 
	else if (num~/pin[0-9][0-9][F-J]/) printf " %.5sF",num;
	else printf " error"}
	' file

# 6  
Old 07-25-2013
Thanks!!!
I was just searching for %.5sA but didn't get much on it in awk.
Can you let me know what exactly it is.
If I use pin[0-9][A-E] then what should come in place of %.5sA
# 7  
Old 07-25-2013
Code:
printf " %.5sA",num

This prints the num ($2 or $3) with a formatting telling it to only print the 5 first characters. This strips away the last character A-J, so we can then replace it with in as this example A
Code:
pin20D	pin20	pin20A
	%.5s	A

This User Gave Thanks to Jotne For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to append the output in a new column?

input1 john 20 bob 30 input2 john 60 bob 100 cat input1 >> output cat input2 >> output ouput john 20 bob 30 john 60 bob 100 desired output input1 input1 input2 input2 john 20 john 60 (3 Replies)
Discussion started by: quincyjones
3 Replies

2. Shell Programming and Scripting

Column output

awk -v OFS="\t" -v ORS="\r\n" 'NR==FNR{A=$4; next} A {$4=$4 " " A}1' refseq_genes.txt LCH_exons.txt > output2.txt Trying to output the data to separate columns in excel, but the 4th column seems to be merged together. This is more of just a learning question. Thank you :). (1 Reply)
Discussion started by: cmccabe
1 Replies

3. Shell Programming and Scripting

Column to row output

Hello All, i have a file with the contents like shown below Name = POLICY1 Selected = 1 Written = 0 Name = POLICY2 Selected = 6 Written = 8 Name = POLICY3 Selected = 4 Written = 26 I want the output to be... (5 Replies)
Discussion started by: vinredmac
5 Replies

4. Shell Programming and Scripting

Converting line output to column based output

Hi Guys, I am trying to convert a file which has a row based output to a column based output. My original file looks like this: 1 2 3 4 5 6 1 2 3 1 2 3 (8 Replies)
Discussion started by: npatwardhan
8 Replies

5. Shell Programming and Scripting

top output for six processes with the same name, output changed from column to row

Hi, I have a system under test, and I use a script that does a ps. The output, is in the following format, it's basically the timestamp, followed by the rss and vsize. 09:03:57 68404 183656 68312 181944 69860 217360 67536 182564 69072 183172 69032 199276 09:04:27 68752 183292 70000 189020... (5 Replies)
Discussion started by: Bloke
5 Replies

6. Shell Programming and Scripting

getting the column header in the output !

i have a script that access the database and then returns some row. but in the command prompt it it not showing the column header. how to get that ? below the script: ------------------------------------------------------------------------ #!/bin/ksh .... (4 Replies)
Discussion started by: ali560045
4 Replies

7. Shell Programming and Scripting

4 column tsv file, output 1 specific column

Hello all siteexplorer.search.yahoo.com can output results in tsv format, when opened in excel I get 4 columns. I would like to wget that file, which I can do. I would then like to pull the 2nd column and output it only. I've searched around and found a few bits and pieces but nothing I've... (6 Replies)
Discussion started by: casphar
6 Replies

8. UNIX Desktop Questions & Answers

Loop column output

I need help in what to do with a bash script? I'm trying to run a command to output the data from a table and then insert it into commands. Looping for each row of data. For example the output data from a table: 10 John house 20 Jane apt 30 Joe townhomeThen I need to take the output... (1 Reply)
Discussion started by: handband2
1 Replies

9. Shell Programming and Scripting

Sub. numbers in column of output with If

This is my script. I am pulling the status of some hard where, but the status is in numerical form. The number 4 means Major and the 5 means Critical. In my script I would like to show the alarm type in aplha rather than numeric form. So if instead of seeing a 4 or 5 you would see MAjor or... (11 Replies)
Discussion started by: ja156194
11 Replies

10. Shell Programming and Scripting

Modifying the final output file

Hey all, I am haivng n number of files all of them are of the same format but different details. i.e File1 is having the folloeing details: "Account1",123 "Account2",10 "Account3",12355 "Accountn",555 File2 is having the folloeing details: "Account1",1234 "Account2",100... (5 Replies)
Discussion started by: charbel
5 Replies
Login or Register to Ask a Question