Linux scripting: Search a specific column for a keyword
awk, grep, linux, search
Solution
The -v option can be used to pass shell variables to `awk` command.
The following may be what you're looking for:
`awk -v s=$SEARCH -v c=$COLUMN '$c == s { print $0 }' file.txt`
EDIT:
I am always trying to write more elegant and tighter code. So here's what Dennis means:
`awk -v s="$search" -v c="$column" '$c == s { print $0 }' file.txt`
Problem
I have a large text file that contains multiple columns of data. I'm trying to write a script that accepts a column number and keyword from the command line and searches for any hits before displaying the entire row of any matches. I've been trying something along the lines of: `grep $fileName | awk '{if ($'$columnNumber' == '$searchTerm') print $0;}'` But this doesn't work at all. Am I on the right lines? Thanks for any help!