I am trying to create a shell script, below is a part of which where i am trying to extract some value from a record in a file:
tgt_val=`cat $file_name | grep "$string_name" | cut -d"|" -f$column_no`
This work perfectly when the specified column has some numeric or string value however it fails when th column has value as " * "
eg:
102|Sam|*|USA
This command would work correctly for column 1,2 & 4
However in case of column 3 it gives me output as all the files in present directory.
Someone please help over this.
printf '%s\n' "$tgt_val", notecho $tgt_val(same for those$file_nameand$column_nothat you forgot to quote). See also Security implications of forgetting to quote a variable in bash/POSIX shells – Stéphane Chazelas Jan 13 '16 at 12:37