我有以下文件:
$ cat files
foo.txt
bar.js
我希望使用 bash awk 只打印不以.js
.
使用单引号 awk 时效果很好:
$ awk '$1 !~ /.js$/ {print $1}' files
foo.txt
但是,当使用双引号 awk 时:
$ awk "\$1 !~ /.js$/ {print \$1}" files
-bash: !~: event not found
答案1
答案2
你是数百万人被愚弄的人之一历史扩展,默认情况下处于活动状态,即使只有千分之一的用户使用过它。
最好是使用set +H
或在 shell 启动文件中禁用它set +o histexpand
。然后就可以使用了!
,不会出现奇怪的问题。