how to print field n of line m

Hi everyone, I have a basic csh/awk question.

How do I print a given field from a given line in a given file?

Thanks in advance!

awk 'NR==given_line{print $given_field}' given_file

Regards

^^^^You missed the given field separator :slight_smile:

thanks franklin! will try it!

oh im using the default field separator (space) :slight_smile:

Hmmm, can someone help me why it doesnt work when i use a variable for the "given_line", eg:

awk 'NR==$counter{print $25}' $argv[1]

thanks in advance!

Try this:

 awk -v var=$counter 'NR==var{print $25}' $argv[1]

Regards

You need to use the -v option in awk to use shell variables, as below:

awk -v c=$counter 'NR==c {print $25}' $argv[1]

or

awk ' BEGIN { FS="\t" } NR==lineno { print $field } ' lineno=$given_line_no field=$given_field_no $given_file

thanks guys, but when I use -v, i get "subscript out of range"

awk -v var=$counter 'NR==var{print $25}' $argv[1]

When I use -v, i get:
awk: syntax error near line 1
awk: bailing out near line 1

:confused:

Try this:

awk 'NR==var{print $25}' var=$counter $argv[1]

Regards

wow, thanks franklin! that worked perfectly! :big grin: