问题
I want to print the pid when finding matched process while the match pattern is inputted:
ps aux | awk -v in="$1" '/in/{print $1}'
It seems the former awk sentence is not right. After checking many results in google like this, I change my script in the following but still cannot work:
ps aux | awk -v in="$1" '/$0 ~ in/{print $1}'
or
ps aux | awk -v in="$1" '($0 ~ in) {print $1}'
回答1:
You are fairly close in all your attempts. Problem is that in is a reserved keyword in awk.
You can use:
ps aux | awk -v var="$1" '$0 ~ var {print $1}'
Or else non-regex way:
ps aux | awk -v var="$1" 'index($0, var) {print $1}'
来源:https://stackoverflow.com/questions/42131314/how-to-using-variables-in-search-pattern-in-awk-script