Sponsored Content
Top Forums UNIX for Dummies Questions & Answers How to Convert Strings into Numbers under C-Shell? Post 302277760 by drl on Saturday 17th of January 2009 09:15:26 PM
Old 01-17-2009
Hi.

Here is a short perl script that illustrates a convenience feature of perl -- including data with the script:
Code:
#!/usr/bin/perl

# @(#) p1       Demonstrate perl DATA, data included with script.

use warnings;
use strict;

my ($debug);
$debug = 0;
$debug = 1;

my ( $a, $b, $difference );

while (<DATA>) {
  ( $a, $b ) = split;
  $difference = $a - $b;
  print " difference $. for $a, $b is $difference\n";
  printf( " nicely formatted: %10.4e, %10.4e is %10.4e\n",
    $a, $b, $difference );
}

print STDERR " ( Lines read: $. )\n";

exit(0);

# Comments for comparison:
# set test3 = (4.985e-10 5.130e-10 5.486e-10 6.023e-10 7.015e-10)
# set test4 = (4.869e-10 5.010-10 5.363e-10 5.895e-10 6.887e-10)

__DATA__
4.985e-10 4.869e-10
5.130e-10 5.010-10
5.486e-10 5.363e-10
6.023e-10 5.895e-10
7.015e-10 6.887e-10

Producing:
Code:
% ./p1
 difference 1 for 4.985e-10, 4.869e-10 is 1.15999999999999e-11
 nicely formatted: 4.9850e-10, 4.8690e-10 is 1.1600e-11
Argument "5.010-10" isn't numeric in subtraction (-) at ./p1 line 16, <DATA> line 2.
 difference 2 for 5.130e-10, 5.010-10 is -5.009999999487
 nicely formatted: 5.1300e-10, 5.0100e+00 is -5.0100e+00
 difference 3 for 5.486e-10, 5.363e-10 is 1.23000000000001e-11
 nicely formatted: 5.4860e-10, 5.3630e-10 is 1.2300e-11
 difference 4 for 6.023e-10, 5.895e-10 is 1.28e-11
 nicely formatted: 6.0230e-10, 5.8950e-10 is 1.2800e-11
 difference 5 for 7.015e-10, 6.887e-10 is 1.28e-11
 nicely formatted: 7.0150e-10, 6.8870e-10 is 1.2800e-11
 ( Lines read: 5 )

Note that the error in your data was diagnosed, and that there are two methods of displaying the data: a quick one with print, and a more precise one with printf.

Most perl scripts are designed to read from disk files, but for small datasets, the DATA option can be useful.

Best wishes ... cheers, drl
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Req on how to convert hex numbers to decimals

Hi, If i have an input as c1:41 c2:0x0000.00046b3e I want to make output display as c1:41 c2:224062 . Basically convert first part 0x0000 (as hex) to decimal which is 0 and convert second part 0x00046b3e (as hex) to decimal which is 289598 and as such add both parts namely... (3 Replies)
Discussion started by: hare
3 Replies

2. Shell Programming and Scripting

extracting numbers from strings

Hello all, I am being dumb with this and I know there is a simple solution. I have a file with the follwing lines bc stuff (more)...............123 bc stuffagain (moretoo)............0 bc stuffyetagain (morehere)......34 failed L3 thing..............1 failed this... (2 Replies)
Discussion started by: gobi
2 Replies

3. Shell Programming and Scripting

How to convert hex numbers to decimal ?

Hi, please tell me how to convert hex number to decimal 000000E7 000000000002640D 0000000000025B16 and seconds to minutes, hours, days, months, years bytes to kbytes, mbytes , gbytes read the following examples while read a b do printf "%5d %5d\n" "0x$a" "0x$b" done < "$FILE"... (15 Replies)
Discussion started by: jack2
15 Replies

4. Programming

C++ Formatting Numbers to Strings

Hi All, Sorry to say I have 0 experience writing C++ but have been asked to write a piece of code that will take a double input and an integer for number of decimal places as well as integer for padding and output a string that represents the double formatted (with comma thousand separators -... (2 Replies)
Discussion started by: Leedor
2 Replies

5. UNIX for Dummies Questions & Answers

Finding numbers in lines with strings and number and doing some manipulation

Hi, I want to write a script that does something like this: I have a file, in which in every line, there is a string of words, and followed by some space, a number. Now, I want to identify the line, which has the largest startFace number (say m=8118), take that number and add it to the... (2 Replies)
Discussion started by: super_commando
2 Replies

6. Shell Programming and Scripting

Replace a multi-line strings or numbers

Hi I have no experience in Unix so any help would be appreciated I have the flowing text 235543 123 45654 199 225 578 45654 199 225 I need to find this sequence from A file 45654 199 225 (22 Replies)
Discussion started by: khaled79
22 Replies

7. Shell Programming and Scripting

Convert Columns in Rows delimited by a strings

Hi Gurus, I have a file that contain inventory information from someones computers: UserName domain\user1 DNSHostName machine1 Caption Microsoft Windows 7 Professional OSArchitecture 64 bits SerialNumber XXX Name HP EliteBook Revolve 810 G1 NumberOfProcessors 1 Name Intel(R)... (2 Replies)
Discussion started by: gilmore666
2 Replies

8. Shell Programming and Scripting

Sort strings with numbers

I want to sort my data first by the 2nd field then by the first field. I can't use sort -V because I don't have gnu sort and cannot install one. How do I go about this? Input: G456 KT1 34 K234 KT10 45 L2 KT2 26 H5 LAF2 28 F3 LAF2 36 Output: G456 KT1 34 L2 KT2 26 K234 KT10 45 F3... (14 Replies)
Discussion started by: aydj
14 Replies

9. Shell Programming and Scripting

Sort strings containing numbers

How can I sort this, first by 2nd field then by 1st field. tried sort -b -k 2,2 Input: AS11 AB1 BD34 AB10 AF12 AC2 A345 AB10 R134 AB2 456 AC10 TTT2 BD12 desired output: AS11 AB1 R134 AB2 A345 AB10 BD34 AB10 AF12 AC2 456 AC10 TTT2 BD12 (2 Replies)
Discussion started by: aydj
2 Replies

10. Shell Programming and Scripting

Convert list of numbers to text range

Hi, I'd like to take a list of numbers (with a prefix) and convert to a range, for example: cn001 cn004 cn016 cn017 cn018 cn019 cn020 cn021 cn031 cn032 cn038 cn042 cn043 cn044 cn045 (5 Replies)
Discussion started by: chrissycc
5 Replies
rsh(1)							      General Commands Manual							    rsh(1)

NAME
rsh - Executes the specified command at the remote host or logs into a remote host SYNOPSIS
rsh [-dn] [-l user] remote_host [command] [argument...] The remote shell command (rsh) executes command at the remote_host, or, if no command is specified, logs into remote_host. OPTIONS
Turns on socket debugging (using setsockopt()) on the TCP sockets used for communication with the remote host. Specifies that rsh is to log into the remote host as user instead of the local username. If this option is not specified, the local and remote usernames are the same. Specifies that rsh is to ignore input from STDIN. Use this option if you put rsh in the background without redirecting its input away from the terminal. If you do not use this option in this situation, rsh blocks even if no reads are posted by the remote command. DESCRIPTION
The rsh command sends standard input from the local host to the remote command and receives standard output and standard error from the remote command. If you do not specify a command, rsh executes rlogin instead. If you do not specify the -l option, the local username is used at the remote host. If -l user is entered, the specified username is used at the remote host. In either case, the remote host allows access only if at least one of the following conditions is satisfied: The local user ID is not superuser, and the name of the local host is listed as an equivalent host in the remote /etc/hosts.equiv file. If either the local user ID is superuser or the check of /etc/hosts.equiv fails, the remote user's home directory must contain a $HOME/.rhosts file that lists the local host and username. For security reasons, any $HOME/.rhosts file must be owned by either the remote user or the root user, and should have permissions set to 600 (read and write by owner only). In addition to the preceding conditions, rsh also allows access to the remote host if the remote user account does not have a password defined. However, for security reasons, use of a password on all user accounts is recommended. While the remote command is executing, pressing the Interrupt, Terminate, or Quit key sequences sends the corresponding signal to the remote process. However, pressing the Stop key sequence stops only the local process. Normally, when the remote command terminates, the local rsh process terminates. To have shell metacharacters interpreted on the remote host, place the metacharacters inside (double quotes). Otherwise, the metacharac- ters are interpreted by the local shell. RESTRICTIONS
The rsh command is confused by output generated by commands in a file on the remote host. In particular, the messages, where are you? and stty: Can't assign requested address can result if output is generated by the startup file. EXAMPLES
In the following examples, the local host host1 is listed in the /etc/hosts.equiv file at the remote host host2. To check the amount of free disk space on the remote host host2, enter: $ rsh host2 df To append a remote file to another file on the remote host, place the >> metacharacters in (double quotes): $ rsh host2 cat test1 ">>" test2 To append a remote file at the remote host to a local file, omit the double quotes: $ rsh host2 cat test2 >> test3 To append a remote file to a local file and use a remote user's permissions at the remote host, use the -l option: $ rsh host2 -l jane cat test4 >> test5 FILES
Specifies remote hosts from which users can execute commands on the local host (provided these users have an account on the local host). Specifies remote users that can use a local user account. SEE ALSO
Commands: rcp(1), rlogin(1), rshd(8), telnet(1) Functions: rexec(3) Files: rhosts(4) rsh(1)
All times are GMT -4. The time now is 09:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy