Syntax error piping to bc on command line - works when assigned to var
I have a script which outputs some timing data a line at a time. There are approx. 10 lines echoed, each line looks something like this:
Since I needed to add all the values in the first column, I piped the output to grep, matching and printing the first numerical column, then piped it on to tr to replace new lines with '+', then piped to sed to replace the final '+' with nothing, and finally to bc to add the values. Then bc gave me a stdin syntax error - damn it, maybe I'm not quite so clever as I thought I was.
On examining the code I discovered that if I left off the final pipe to bc I got what I thought I should have - that being:
So I copied and pasted those values into an echo statement, piped to bc, and it worked fine as shown above.
As another test I ran the command again, this time assigning the result to a variable, and then piped the variable to bc. That also worked fine, see code below (the top line has the error shown when piped to bc):
What I want to know is why I get the syntax error from bc when I run it as one line? Any ideas?
Many thanks.
PS. The somewhat simpler alternative works with no problems.
Dear forum
I have the following small script:
#!/bin/ksh
echo -e "abba-o" | awk -F '-' '{ print $2 }' | cut -b 1It needs to be ksh.. in bash I don't have this problem.
If I run this on opensuse 10.2 I get this as output: e
If I run this on suse enterprise 10 sp2 then I get this: o
... (1 Reply)
Whenever I send an email to my catchall alias via SSH (i.e., locally), Exim successfully pipes the e-mail to a PHP script, as I told it to do. However, when I try to send an e-mail to my catchall alias via my e-mail client (i.e., remotely), Exim won't pipe the e-mail. Any ideas?
My exim.conf... (0 Replies)
I am running the following script and passing the following command line arguments :
DBCheckSum_control CA_SITE CA_SITE
Can someone please tell me, why my command line args are not being accepted and assigned to variable "TABLE_NAME'' and "ACTION_TYPE"??
usage()
{
print "Usage: ${0} {... (3 Replies)
Hey guys. Hopefully this is an easy one but having reference similar problems on the web I still can't fix it.
I am doing a recursive find and replace from a script. Of course I could just run the damn thing from the command line but it's bugging me now and want to get it working.
grep -rl... (4 Replies)
I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes
CC=`which gcc`
CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Needing a hint. Creating that function called Meter my simple script works well. What I want now is to start the last four commented lines to include or trigger a reaction, if there are more than n lines in that .txt-file it shall display that message for example. But the interpreter says there is... (3 Replies)
OSX 10.9
I am building a script that evaluates the difference between 2 files. Here is a command that does not work transparently.
Running this command in Terminal yields great results; however when I put that line in a .sh script, I get the errors shown below. Am I doing something silly?
... (1 Reply)
I know that
set line "This is a line."
puts whats between " inside the var line.
But
How do I do the same for
set line "This is a line "with quotations" inside the string." (2 Replies)
Hi,
My command is getting stuck while running it.
observed that the grep command doesn't returned any data ($? was 1) and it failed.
This command is assigned into the variable and used in other command as script progresses. To continue the script output, i have to press ^C twice and script... (2 Replies)
Oracle Linux 6.
Trying to set up a simple monitoring of memory usage. This command does exactly what I want at the command line:
echo $(date +%Y-%m-%d" "%H:%M:%S) $(grep PageTables /proc/meminfo) >> /home/oracle/meminfo.logBut when I put it in my crontab:
* * * * * echo $(date +%Y-%m-%d"... (2 Replies)
Discussion started by: edstevens
2 Replies
LEARN ABOUT REDHAT
diff3
DIFF3(1) GNU Tools DIFF3(1)NAME
diff3 - find differences between three files
SYNOPSIS
diff3 [options] mine older yours
DESCRIPTION
The diff3 command compares three files and outputs descriptions of their differences.
The files to compare are mine, older, and yours. At most one of these three file names may be -, which tells diff3 to read the standard
input for that file.
Options
Below is a summary of all of the options that GNU diff3 accepts. Multiple single letter options (unless they take an argument) can be com-
bined into a single command line argument.
-a Treat all files as text and compare them line-by-line, even if they do not appear to be text.
-A Incorporate all changes from older to yours into mine, surrounding all conflicts with bracket lines.
-B Old behavior of -A. Shows non-conflicts.
-e Generate an ed script that incorporates all the changes from older to yours into mine.
-E Like -e, except bracket lines from overlapping changes' first and third files. With -e, an overlapping change looks like this:
<<<<<<< mine
lines from mine
=======
lines from yours
>>>>>>> yours
--ed Generate an ed script that incorporates all the changes from older to yours into mine.
--easy-only
Like -e, except output only the nonoverlapping changes.
-i Generate w and q commands at the end of the ed script for System V compatibility. This option must be combined with one of the
-AeExX3 options, and may not be combined with -m.
--initial-tab
Output a tab rather than two spaces before the text of a line in normal format. This causes the alignment of tabs in the line to
look normal.
-L label
--label=label
Use the label label for the brackets output by the -A, -E and -X options. This option may be given up to three times, one for each
input file. The default labels are the names of the input files. Thus diff3 -L X -L Y -L Z -m A B C acts like diff3 -m A B C ,
except that the output looks like it came from files named X, Y and Z rather than from files named A, B and C.
-m
--merge
Apply the edit script to the first file and send the result to standard output. Unlike piping the output from diff3 to ed, this
works even for binary files and incomplete lines. -A is assumed if no edit script option is specified.
--overlap-only
Like -e, except output only the overlapping changes.
--show-all
Incorporate all unmerged changes from older to yours into mine, surrounding all overlapping changes with bracket lines.
--show-overlap
Like -e, except bracket lines from overlapping changes' first and third files.
-T Output a tab rather than two spaces before the text of a line in normal format. This causes the alignment of tabs in the line to
look normal.
--text Treat all files as text and compare them line-by-line, even if they do not appear to be text.
-v
--version
Output the version number of diff3.
-x Like -e, except output only the overlapping changes.
-X Like -E, except output only the overlapping changes. In other words, like -x, except bracket changes as in -E.
-3 Like -e, except output only the nonoverlapping changes.
SEE ALSO cmp(1), comm(1), diff(1), ed(1), patch(1), sdiff(1).
DIAGNOSTICS
An exit status of 0 means diff3 was successful, 1 means some conflicts were found, and 2 means trouble.
GNU Tools 22sep1993 DIFF3(1)