Ste Prescott
Ste Prescott

Reputation: 1817

Linux scripting: Passing parameters

I'm new to scripting and need a lot of help understanding how to load in a text file that will be passed in by a parameter. I'm afraid that you'll have to really dumb down your answers. Please explain like I am a 10 year old!

For example, how does one write a script that accepts two parameters, a file path and an integer.

Also how do you run the script? would you just call script.sh -f data.txt

Upvotes: 0

Views: 245

Answers (3)

Dennis Williamson
Dennis Williamson

Reputation: 360085

This page of the GNU AWK (gawk) manual describes how to process options as getopt would.

Include the function shown on that page in your script.

Upvotes: 0

g13n
g13n

Reputation: 3246

Could you explain your requirement a bit in detail?

I assume you are looking to extract the Nth column from a given file. You don't need to parse command-line parameters within AWK, instead just pass them from sh(1) itself.

# foo.sh
awk "{ print $"$1" }" $2

Here I'm escaping out of AWK to get the first argument which is the position number. If you find that too confusing you can manipulate ARGC, ARGV. Read awk(1).

Hope that helps.

Upvotes: 1

apmasell
apmasell

Reputation: 7153

You can do this by manipulating ARGC and ARGV to extract your integer from the argument list in the BEGIN block. You can put your script in a text file with the first line being #!/usr/bin/awk -f and then make the file executable with chmod a+x.

Upvotes: 0

Related Questions