파일이 2개 있습니다
echo 'example.com/call_me?param' > file1.txt
echo 'example.com/call_me_maybe?param' >> file1.txt
echo 'example.com/call_me?' >> file1.txt
echo 'example.com/call_me?param' > file2.txt
echo 'example.com/call_me_maybe?' >> file2.txt
$ ag -v '\?param'
file2.txt
2:example.com/call_me_maybe?
file1.txt
3:example.com/call_me?
$ ag '\/call_me_maybe' -v '\?param'
ERR: Error stat()ing: \?param
ERR: Error opening directory \?param: No such file or directory
$ ag '\/call_me_maybe' -v '\?param' file1.txt
ERR: Error stat()ing: \?param
ERR: Error opening directory \?param: No such file or directory
file1.txt
1:example.com/call_me?param
3:example.com/call_me?
특정 용어를 검색하고 다른 패턴을 제외하고 싶습니다. 하나의 명령으로 이것을 할 수 있습니까?
나는 파일을 채굴하기 때문에 ag를 사용합니다 log.gz
. 그래서 zgrep
or 을 사용할 수 있습니다 ag -z
.
답변1
나는 그것을 사용하지 않지만 ag
매뉴얼 페이지에 따르면 명령줄은 다음과 같습니다.
ag [options] pattern [path ...]
즉, 하나의 모드만 허용됩니다.
grep
검색을 역방향 검색과 결합하려는 경우(예: 검색 수행 ) 와 마찬가지로 a AND NOT b
출력을 grep -v ...
. 예를 들어
ag '\/call_me_maybe' | grep -v '\?param'