Command line - awk, sed

My input file gfile values is CTRY=GM&PROJTYPE=SP&PROJECTTYPE=Small+Project

If i am giving PROJECTTYPE then it must give Small Project

awk -F"&" '{for (i=1; i<=NF; i++) if ($i ~ "^"PAT) {sub ("^"PAT"=", "", $i);  sed 's/'+'/""/' $i  ; print $i }}' PAT=$1  /home/dstoret/Migration_team/Nagesh/gfile

However getting syntax error,

echo "CTRY=GM&PROJTYPE=SP&PROJECTTYPE=Small+Project" | awk -F= '/PROJECTTYPE/ {print $4}'
Small+Project
1 Like
 
awk -F"&" '{for (i=1; i<=NF; i++) if ($i ~ "^"PAT) {sub ("^"PAT"=", "", $i);sub (/\+/, "", $i); print $i}}' PAT=$1 filename
1 Like

Thanks, Can't we use sed ?

Try this,

sed -n 's/.*PROJECTTYPE=\(.*\)$/\1/p' or if you want that to be in a variable

sed -n "s/.*$var=\(.*\)$/\1/p"

1 Like
$ cat file
CTRY=GM&PROJTYPE=SP&PROJECTTYPE=Small+Project
$ cat test.sh
pattern=$1
sed "s/.*\<$pattern\>=\([^&]*\)&*.*/\1/" file | tr "+" " "
$ ./test.sh PROJECTTYPE
Small Project
1 Like

Hi All,

Thanks a ton