2010-03-10 6 views
1

모든 라인을 assert_equal 및 amazon없이 원합니다.xargs가 작동하지 않습니다.

다음을 시도했지만 작동하지 않습니다.

ack assert_equal | xargs ack -v amazon 
+0

* "ack"* 란 무엇입니까? – DigitalRoss

+0

@DigitalRoss, ack는 찾기 및 grep 유틸리티입니다. 또한 http://betterthangrep.com/ –

+1

을 참조하십시오. 이것은 아마도 수퍼 유저로 마이그레이션되어야합니다. – jdizzle

답변

4

당신은 xargs를 필요하지 않습니다 :

ack assert_equal | ack -v amazon 
1

이 명령에 문제가 몇 것 같다. 첫 번째 부분에서 : 당신은 파일 이름을 제공하지 않는

ACK

assert_equal, 그래서 ack 처리 할 아무 상관이 없습니다. 두 번째 부분에서 :

xargs를 ACK -v 아마존

당신은 아마 당신이 무엇을하지 않은, 두 번째 ack에 명령 줄 인수로 초기 ack의 결과를 제공하기 위해 xargs를 사용하는

예정된. ack은 이미 표준 입력에서 데이터를 수신하도록 설계되었으므로 xargs을 전혀 사용할 필요가 없습니다. |

ACK assert_equal 파일 이름 : 여기

는 잘 작동해야 성명 ACK -v 아마존

또는 다른 명령의 출력을 얻는 경우, 뭔가 같은 :

my_command | ack assert_equal | ack -v 아마존

+0

ack assert_equal은 많은 데이터를 표시합니다. 답장을 보내 주셔서 감사합니다. –

+0

betterthangrep.com에서 사용할 수있는'ack' (위의 Dave Bacher가 말한 것처럼)은 적어도 하나의 인자 (적어도 내 컴퓨터에서는)로 실행할 때 어떤 데이터도 리턴하지 않을 것입니다. 또 다른'ack' 프로그램 인 간지 코드 변환기는 현재 제공되는 텍스트 파일을 출력하지만, -v 인수를 취하지 않으므로 그렇게 생각하지 않습니다. 당신이 사용하고있을 세 번째'ack'가 있습니까? –

+0

ack에는 검색 할 파일 이름이 필요하지 않습니다. 검색 패턴 만 있으면됩니다. 현재 디렉토리부터 시작하여 전체 트리를 검색하려고한다고 가정합니다. –

0

ack은 * nix에서 표준 도구가 아닙니다. 네가 그걸 가지고 있기 때문에. 당신이 그것을 가지고 있지 않은 유닉스 계열의 시스템에있는 경우에, 여기 당신이

awk '/assert_equal/&&!/amazon/' file 
0

이 조각은 당신에게 당신이 할 필요가 무엇인지에 대한 아이디어를 제공해야 할 수있는 방법입니다. 마법은 -print0 옵션에 있습니다. 직접적인 해결책이 아닙니다. 나 게으르다.

ack -f --print0 --php -G 'scripts' --invert-file-match|xargs -0 ls -l