
就是希望在执行脚本时传递一个 $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 awk "/$1/{print}" # 换成"",首先 shell 会帮你做替换,替换完了才会给 sed |
4 churchmice 2021-02-13 19:03:14 +08:00 可以继续扩展,比如你想要 echo 出一个 '""'怎么做? "" ''只是 shell 用来定界用的,想明白了这一点,你可以随便传你想要的 echo "'"'""'"'" |
5 FurN1 2021-02-14 04:03:40 +08:00 via iPhone |