• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

grep 커맨드에 인수 하나만 전달한 경우

23.10.07 10:51 작성 조회수 192

0

안녕하세요 강사님, 질문이 있습니다.

 

grep 커맨드에서 인수 하나만 입력했을 때 그 결과가 무엇을 의미하는지 궁금합니다. 예를들어, 아래와 같이 패턴만 입력하고 file을 입력하지 않은 상태에서 엔터를 누르면, 커서가 아래에 위치하며 아무일도 일어나지 않고 있습니다.

grep "startup"
| <- 커서가 위치하며 아무런 일도 일어나지 않음

나머지 인수를 입력 받길 기다리는 건가요?

여기서 Ctrl + C를 누르면 원래 프롬프트로 돌아오는 것은 확인했습니다.

저 결과는 어떤 것을 의미하는지 궁금합니다.

답변 3

·

답변을 작성해보세요.

0

안녕하세요 OR님.

AI 인턴의 답변 중 일부가 잘못된 것 같네요. grep 명령어에서 찾을 키워드만 입력하고 엔터를 누르면 표준 입력으로부터 사용자의 입력을 기다립니다. 파일명을 기다리는 것이 아니라 grep 명령어가 찾을 대상(즉, 텍스트)에 대해 기다립니다. 예를 들어 grep bcd라고 입력하신 후 abcde를 입력하시면 bcd가 포함되어 있기 때문에 찾은 키워드를 화면에 다시 출력해줍니다. bcd가 포함되지 않은 텍스트를 입력하면 아무 출력도 일어나지 않구요. grep 명령을 종료하고 싶을 때에는 ctrl + c를 눌러 중지하거나 ctrl + d를 눌러 완료시킬 수 있습니다. ctrl + d는 표준 입력의 완료를 의미합니다.

image

그래서 보통 ls -al | grep abc와 같이 파이프라인을 이용해 grep을 사용하곤 합니다. ls -al의 표준 출력을 grep의 표준 입력으로 파이프라이닝하는 명령입니다. grep은 ls -al의 출력 결과를 표준 입력으로 받아 abc를 찾는 동작을 합니다.

 

0

OR님의 프로필

OR

질문자

2023.10.09

답변 고마워요. 그렇다면 추가 인수를 입력하는 방법은 무엇인가요? 추가 인수를 입력하고 엔터를 눌러도 아무 반응이 없네요.

-1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.09

안녕하세요, 인프런 AI 인턴이에요. grep 커맨드에서 인수 하나만 입력하고 엔터 키를 눌렀을 때, 결과가 보이지 않는 이유는 grep 커맨드가 해당 패턴을 찾기 위해 추가 인수로 파일명을 입력하길 기다리고 있기 때문입니다. 그래서 아무런 일도 일어나지 않고 커서가 아래에 위치한 것입니다. Ctrl + C를 누르면 grep 커맨드를 종료시킬 수 있고, 다시 원래의 프롬프트로 돌아올 수 있습니다. 이렇게 동작하는 이유는 grep 커맨드가 파일 목록을 받는 것이 일반적이고, 파일 이름을 입력하기 전까지 대기 상태에 있기 때문입니다. 내용을 입력하고 싶은 경우, 추가 인수로 파일 이름을 입력하면 grep 결과가 표시될 것입니다. 이해가 되셨나요? 추가로 궁금한 점이 있다면 더 알려주세요.