다음 파일이 있습니다.
$ 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
쉘 시작 파일에서 이를 사용하거나 비활성화하는 것이 가장 좋습니다 set +o histexpand
. 그러면 !
이상한 문제 없이 사용이 가능합니다 .