ack-grep
否定的な先読みで使用することに問題があります。
私はこのコマンドを実行しています:
ack-grep "paypal_responded(?!_at)"
しかし、私はエラーが発生しています:
bash: !_at: event not found
色々なところにバックスラッシュを入れてみましたが、ack&linuxも初心者なので初心者扱いでお願いします。
前もって感謝します。
ack-grep
否定的な先読みで使用することに問題があります。
私はこのコマンドを実行しています:
ack-grep "paypal_responded(?!_at)"
しかし、私はエラーが発生しています:
bash: !_at: event not found
色々なところにバックスラッシュを入れてみましたが、ack&linuxも初心者なので初心者扱いでお願いします。
前もって感謝します。
試すack-grep 'paypal_responded(?!_at)'
!
bashが history expand コマンドとして解釈されるのを避けるために、一重引用符が必要です。
シェルは!
、入力の をコマンド置換として解釈しています。
$ ack-grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ !ac
ack-grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$
!
特別な意味を持たないことをシェルに伝える必要があります。それには 2 つの方法があります。
ack-grep "paypal_responded(?\!_at)"
ack-grep "paypal_responded\(?\!_at\)"
また
ack-grep 'paypal_responded(?!_at)'
単一引用符で囲まれた文字列には、適用される変換が少なくなります。
$ ack-grep "s\!" /etc/passwd
$ ack-grep 's!' /etc/passwd
$