Decrementing numbers


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Decrementing numbers
# 8  
Old 06-21-2012
Quote:
Originally Posted by Scrutinizer
On Solaris use /usr/xpg4/bin/awk rather than awk
Do you mean to use this as the shell interpreter?

#!usr/xpg4/bin/awk

I did this and it nows interprets the script name as a command (which it cna't find)
# 9  
Old 06-21-2012
No, I mean to use /usr/xpg4/bin/awk wherever you would use awk if you are using Solaris.
# 10  
Old 06-21-2012
Quote:
Originally Posted by Scrutinizer
No, I mean to use /usr/xpg4/bin/awk wherever you would use awk if you are using Solaris.
It doesn't seem to like that. When I execute the script "CHANGE_TEST_NUMS" I get the following error:

/home/test/bin/CHANGE_TEST_NUMS: usr/xpg4/bin/awk: No such file or directory
# 11  
Old 06-21-2012
If you use awk in the shebang you need to use awk -f, but as I indicated in red, you left out the leading slash in the path to awk, so it cannot be found...
# 12  
Old 06-21-2012
Quote:
Originally Posted by Scrutinizer
If you use awk in the shebang you need to use awk -f, but as I indicated in red, you left out the leading slash in the path to awk, so it cannot be found...
Ok the error is gone now but the script does nothing. I run my script on a text file called a.txt:

bash-2.03$ CHANGE_TEST_NUMS a.txt

the script syntax is:

Code:
#!/bin/bash -f
#
echo $1
/usr/xpg4/bin/awk -v start=5 -v end=9 '!($1 >= start && $1 <= end){
if($1 ~ /[0-9]{1,}/ && $1>end)
 sub(/[0-9]{1,}/,($1-(end-start)-1))
print
}' inputfile

However the script does nothing to the text file a.txt
# 13  
Old 06-21-2012
  1. With bash, you should not use -f in the shebang. Leave that out
  2. "inputfile" should be the actual name of the input file, unless
  3. If you want to specify the file on the command line like that you need to use shell positional parameters ($1, $2 ,etc) to feed it into awk..
  4. You need to call the script as ./script unless its directory is in your PATH variable
# 14  
Old 06-21-2012
Quote:
Originally Posted by Scrutinizer
  1. With bash, you should not use -f in the shebang. Leave that out
  2. "inputfile" should be the actual name of the input file, unless
  3. If you want to specify the file on the command line like that you need to use shell positional parameters ($1, $2 ,etc) to feed it into awk..
  4. You need to call the script as ./script unless its directory is in your PATH variable
Thanks, I have the data manipulation part working. However I need to save this to a new file. I'm using the sed program to created a new file called a_mod.txt (the original is called a.txt). Also I'm piping the output to this new file. Here's my code:

Code:
#!/bin/bash
#
OUTPUT_FILENAME = `echo $1 | sed 's/.txt/_mod.txt/'`

/usr/xpg4/bin/awk -v start=4 -v end=5 '!($1 >= start && $1 <= end){
if($1 ~ /[0-9]{1,}/ && $1>end)
 sub(/[0-9]{1,}/,($1-(end-start)-1))
print
}' $1 > $OUTPUT_FILENAME

I'm getting the following error.

/home/test/bin/CHANGE_TEST_NUMS: OUTPUT_FILENAME: command not found
/home/test/bin/CHANGE_TEST_NUMS: $OUTPUT_FILENAME: ambiguous redirect
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Decimal numbers and letters in the same collums: round numbers

Hi! I found and then adapt the code for my pipeline... awk -F"," -vOFS="," '{printf "%0.2f %0.f\n",$2,$4}' xxx > yyy I add -F"," -vOFS="," (for input and output as csv file) and I change the columns and the number of decimal... It works but I have also some problems... here my columns ... (7 Replies)
Discussion started by: echo manolis
7 Replies

2. Shell Programming and Scripting

Adding (as in arithmetic) to numbers in columns in file, and writing new file with new numbers

Hi again. Sorry for all the questions — I've tried to do all this myself but I'm just not good enough yet, and the help I've received so far from bartus11 has been absolutely invaluable. Hopefully this will be the last bit of file manipulation I need to do. I have a file which is formatted as... (4 Replies)
Discussion started by: crunchgargoyle
4 Replies

3. UNIX for Dummies Questions & Answers

Print numbers and associated text belonging to an interval of numbers

##### (0 Replies)
Discussion started by: lucasvs
0 Replies

4. Shell Programming and Scripting

the smallest number from 90% of highest numbers from all numbers in file

Hello All, I am having problem to find what is the smallest number from 90% of highest numbers from all numbers in file. I am having file with thousands of lines and hundreds of columns. I am familiar mainly with bash but I am open to whatever suggestion witch will lead to the solutions. If I... (11 Replies)
Discussion started by: Apfik
11 Replies

5. Shell Programming and Scripting

Help with numbers

Say I have 3 sets of numbers: 043 5326 90432 and I want to select the digits that all 3 have in common! so to answer my question 3 is the only digit that all 3 have in common! Can this be done with 1 command in unix shell? or is it more complicated than I think it is? I don't want an answer... (3 Replies)
Discussion started by: puttster
3 Replies

6. UNIX for Dummies Questions & Answers

Replace US numbers with European numbers

hey, I have a file with numbers in US notation (1,000,000.00) as well as european notation (1.000.000,00) i want all the numbers to be in european notation. the numbers are in a text file, so to prevent that the regex also changes the commas in a sentence/text i thought of: sed 's/,/\./'... (2 Replies)
Discussion started by: FOBoy
2 Replies

7. Shell Programming and Scripting

compare the interval of 2 numbers of input2with interval of several numbers of input1

Help plz Does any one have any idea how to compare interval ranges of 2 files. finding 1-4 (1,2,3,4) of input2 in input1 of same key "a" values (5-10, 30-40, 45-60, 80-90, 100-120 ). Obviously 1-4 is not one of the range with in input1 a. so it should give out of range. finding 30-33(31,32,33)... (1 Reply)
Discussion started by: repinementer
1 Replies

8. Shell Programming and Scripting

read numbers from file and output which numbers belongs to which range

Howdy experts, We have some ranges of number which belongs to particual group as below. GroupNo StartRange EndRange Group0125 935300 935399 Group2006 935400 935476 937430 937459 Group0324 935477 935549 ... (6 Replies)
Discussion started by: thepurple
6 Replies

9. Shell Programming and Scripting

How get numbers only?

I have a file with the following contents..say 123 abc 90and / 1009 from which i only need numbers to be printed. like 123 90 1009 using any shell command. Thanks. (7 Replies)
Discussion started by: vijay_0209
7 Replies

10. UNIX for Dummies Questions & Answers

seperating records with numbers from a set of numbers

I have two files one (numbers file)contains the numbers(approximately 30000) and the other file(record file) contains the records(approximately 40000)which may or may not contain the numbers from that file. I want to seperate the records which has the field 1=(any of the number from numbers... (15 Replies)
Discussion started by: Shiv@jad
15 Replies
Login or Register to Ask a Question