Delete last characters in each column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete last characters in each column
# 1  
Old 06-30-2013
Question Delete last characters in each column

I need to delete the last 11 characters from each number and they are all in the same line (each is in a different column):

Code:
-6.89080901827020800000 3.49348891708562325136 1.47988367839905286876 -2.29707635413510400000 -3.49342364708562325136 -4.43758473239905286876 -2.29707635413510400000 .00003263500000000000 -1.47885052700000000000 -6.89080901827020800000 .00003263500000000000 -4.43758473239905286876

If I use:
Code:
sed '$s/...........$//'
    or
awk ' sub( "............$", "")'

They only delete from the last field. It seems simple but I couldn't find answer and can't figure it out, please help. Smilie

Last edited by Don Cragun; 06-30-2013 at 05:22 PM.. Reason: Add code tags
# 2  
Old 06-30-2013
Code:
awk '{for(i=1;i<=NF;i++) sub(/...........$/,X,$i)}1' file

This User Gave Thanks to Yoda For This Post:
# 3  
Old 06-30-2013
Quote:
Originally Posted by Yoda
Code:
awk '{for(i=1;i<=NF;i++) sub(/...........$/,X,$i)}1' file

Thanks it works perfectly Smilie

Can you explain what is that X for and why there is a 1 in the end of the command??
# 4  
Old 06-30-2013
Try
Code:
awk '{for (i=1; i<=NF; i++) sub(/...........$/,"",$i)}1' file

I was trying to set and use the OFMT variable (as you obviously want to modify long mantissae), but this did not work in my linux/mawk system - no idea why not!

Or, sed:
Code:
sed -r 's/.{11}( |$)/\1/g' file
-6.890809018 3.493488917 1.479883678 -2.297076354 -3.493423647 -4.437584732 -2.297076354 .000032635 -1.478850527 -6.890809018 .000032635 -4.437584732


Last edited by RudiC; 06-30-2013 at 05:31 PM..
This User Gave Thanks to RudiC For This Post:
# 5  
Old 06-30-2013
Quote:
Originally Posted by rogeriog.em
Can you explain what is that X for and why there is a 1 in the end of the command??
X is nothing but an undefined variable. So substituting with X is same as substituting with null.

1 == true and 0 == false. When true, the default awk action is to print the record. So that 1 is just to force awk to print the whole record after performing substitution.
This User Gave Thanks to Yoda For This Post:
# 6  
Old 06-30-2013
Quote:
Originally Posted by RudiC
[..] I was trying to set and use the OFMT variable (as you obviously want to modify long mantissae), but this did not work in my linux/mawk system - no idea why not!
[..]
Perhaps you were looking for CONVFMT ?
Code:
awk '{for(i=1; i<=NF; i++) $i+=0}1' CONVFMT="%.10f" file

Output:
Code:
-6.8908090183 3.4934889171 1.4798836784 -2.2970763541 -3.4934236471 -4.4375847324 -2.2970763541 0.0000326350 -1.4788505270 -6.8908090183 0.0000326350 -4.4375847324

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 7  
Old 06-30-2013
Quote:
Originally Posted by Scrutinizer
Perhaps you were looking for CONVFMT ?
. . .
Thanks, yes. I knew something was there but I was not scrutinizing the man page carefully enough... Anyhow, does not really beautify/curtail the code...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete special characters

My sed is not working on deleting the entire special characters and leaving what is necessary.grep connections_per a|sed -e 's/\<\!\-\-//g' INPUT: <!-- <connections_per_instance>1</connections_per_instance> --> <method>HALF</method> <!--... (10 Replies)
Discussion started by: kenshinhimura
10 Replies

2. Shell Programming and Scripting

Remove the first character from the fourth column only if the column has four characters

I have a file as follows ATOM 5181 N AMET K 406 12.440 6.552 25.691 0.50 7.37 N ATOM 5182 CA AMET K 406 13.685 5.798 25.578 0.50 5.87 C ATOM 5183 C AMET K 406 14.045 5.179 26.909 0.50 5.07 C ATOM 5184 O MET K... (14 Replies)
Discussion started by: hasanabdulla
14 Replies

3. Shell Programming and Scripting

delete first 2 characters for each line, please help

hi, ./R1_970330_210505.sard ./R1_970403_223412.sard ./R1_970626_115235.sard ./R1_970626_214344.sard ./R1_970716_234214.sard ... ... ... for these strings, i wanna remove the ./ for each line how can i do that? i know it could possibly be done by sed, but i really have not idea how... (4 Replies)
Discussion started by: sunnydanniel
4 Replies

4. Shell Programming and Scripting

Delete row if a a particular column has more then three characters in it

Hi i have a data like hw:dsfnsmdf:39843 chr2 76219829 51M atatata 51 872389 hw:dsfnsmdf:39853 chr2 76219839 51M65T atatata 51 872389 hw:dsfnsmdf:39863 chr2 76219849 51M atatata 51 872389 hw:dsfnsmdf:39873 chr2 ... (3 Replies)
Discussion started by: bhargavpbk88
3 Replies

5. Shell Programming and Scripting

need to Delete first 10 characters of a file name

Hello Everyone, I need help in deleting first 10 characters from the filename in a directory eg: 1234567890samplefile1.txt 1234567890samplefile2.txt and so on.. need to get the output as samplefile1.txt Thanks in Advance!!!! (8 Replies)
Discussion started by: Olivia
8 Replies

6. Shell Programming and Scripting

Delete characters from each line

Hi, I have a file that has data in the following manner, tt_0.00001.dat 123.000 tt_0.00002.dat 124.000 tt_0.00002.dat 125.000 This is consistent for all the entries in the file. I want to delete the 'tt_' and '.dat' from each line. Could anyone please guide me how to do this using awk or... (2 Replies)
Discussion started by: lost.identity
2 Replies

7. Shell Programming and Scripting

How to delete characters using a file

Hi All, I have a configuration file (file.cfg) in which data will be like this ; , _ + a to z A to Z Now i have to read a textfile (file.txt) and i need to check whether there is any other character present in text file that is not existing in (file.cfg). If other characters are present... (4 Replies)
Discussion started by: krishna_gnv
4 Replies

8. Shell Programming and Scripting

Delete not readable characters

Hi All, I wanted to delete all the unwanted characters in the string. ie, to delete all the characters which are not alpha numeric values. var1="a./bc" var2='abc/\."123' like to get the output as print var1 abc print var2 abc123 Could you guys help me out pls. Your help is... (3 Replies)
Discussion started by: ajilesh
3 Replies

9. UNIX for Dummies Questions & Answers

how to delete M-^M characters from a file

I am receiving a file with 'M-^M' characters...how do I get rid of these characters. I tried tr -d '\015' and sed '/^M//g', but they didnot work. Appreciate if someone can help me with this (1 Reply)
Discussion started by: hyennah
1 Replies

10. AIX

Delete specific characters

Hi every1 Well i have a list of numbers e.g 12304 13450 01234 00123 14567 what i want is a command to check if the number is starting from 0 and then delete the 0 without doing anything else!!!! any help wud b appreciated!!!!!!!!:( (4 Replies)
Discussion started by: masquerer
4 Replies
Login or Register to Ask a Question