C 셸을 사용하여 사용자 정의 플래그 교체 규칙을 만드는 방법은 무엇입니까?

C 셸을 사용하여 사용자 정의 플래그 교체 규칙을 만드는 방법은 무엇입니까?

나는 grep이 다음과 같은 동작을 하도록 하고 싶습니다:

grep --java <rest of the command>

여기서 --java는 --include=*.java로 동적으로 변환되거나 내부적으로 동일합니다. 내 .cshrc 파일에서 이 작업을 수행할 수 있는 방법이 있나요? 전체 명령을 사용해 보았지만 현재 단어에서 대체 명령을 사용할 수 없는 것 같습니다.

답변1

다른 구문(이 경우 더 짧고 입력하기 쉬움)을 사용하려는 경우 해당 구문에 대한 별칭을 만드세요. 다음 항목에 추가하세요 ~/.cshrc.

alias jgrep grep --include="*.java"

그런 다음 다음과 같은 명령을 실행할 수 있습니다.

jgrep foo *

그것은 실행될 것이다

grep --include="*java" foo *

답변2

이것은 에서 할 수 있는 일이 아닙니다 tcsh.

귀하의 옵션은 다음과 같습니다:

  • terdon이 이미 언급했듯이 별칭을 사용하십시오.

    alias jgrep grep --include="*.java"
    
  • 완료 모드를 설정합니다. 예를 들어:

    complete grep 'c/--/(complete)/' 'n/--complete/(*.java *.rb *.py)/' 
    

    이렇게 하면 입력할 수 있습니다 grep --<Tab><Tab>j<Tab>.

  • 변수 사용:

    set java = '--include=*.java'  
    grep -r "$java" foo
    

    개인적으로는 반드시 더 쉽다고 생각하지는 않습니다.

마침내 나는 찾았다the_silver_searcher코드 트리를 "grepping"하는 데 더 유용하고 빠릅니다. 확인해 보시면 좋을 것 같습니다.

관련 정보