就是希望在执行脚本时传递一个 $1 作为脚本中 awk 的 pattern
awk '/$1/{print}' #
如何实现这样的效果 $1 被理解成位置参数,而不是第一列
1
hcymk2 2021-02-13 18:58:09 +08:00
-v var=val --assign=var=val
|
2
zlowly 2021-02-13 18:58:55 +08:00
不是很理解你说的“ $1 被理解成位置参数”是什么意思,是指$1 为调用 awk 的 shell 脚本的参数吗?
如果是,那么你可以用-v 传递变量进 awk 然后再利用。例如 awk -v mypattern="$1" '$0 ~ mypattern {print}' 这样就把$1 赋值到 awk 里的变量 mypattern,而这个 mypattern 变量就可以用~来进行匹配运算。 |
3
churchmice 2021-02-13 19:00:59 +08:00 1
awk "/$1/{print}" #
换成"",首先 shell 会帮你做替换,替换完了才会给 sed |
4
churchmice 2021-02-13 19:03:14 +08:00
可以继续扩展,比如你想要 echo 出一个 '""'怎么做?
"" ''只是 shell 用来定界用的,想明白了这一点,你可以随便传你想要的 echo "'"'""'"'" |
5
IgniteWhite 2021-02-14 04:03:40 +08:00 via iPhone
|