"grep -c ^b example"과 "grep ^b example| cat -n"의 차이점은 무엇입니까?

"grep -c ^b example"과 "grep ^b example| cat -n"의 차이점은 무엇입니까?

저는 명령줄을 더 잘 배우려고 노력 중이며 이 두 명령의 차이점이 무엇인지 알고 싶습니다.

grep -c ^b example  

그리고

grep ^b example| cat –n

답변1

글쎄요에 따르면수동으로, grep:

찾다무늬모든문서. 기본적으로 grep일치하는 줄이 인쇄됩니다.

그리고 -c플래그를 사용하면:

-c, --count

일반 출력을 억제합니다. 대신 각 입력 파일에 대해 일치하는 줄 수를 인쇄합니다.

따라서 grep -c ^b example인쇄숫자(카운트) 패턴과 일치하는 라인을 계산하여 grep ^b example라인 자체를 인쇄합니다.

에 관해서는 cat,그것은 다음과 같이 설명됩니다.

파일을 연결하고 표준 출력으로 인쇄

-n플래그의 기능은 다음과 같습니다.

-n, --number    

모든 출력 라인에 번호를 매깁니다.

파이프가 있고 파일 이름이 없으면 cat파이프에서 읽으므로 출력은 grep행 번호가 추가된 의 출력입니다. 따라서 grep ^b example| cat –n일치하는 모든 줄이 인쇄되고 번호가 매겨집니다.


이는 일치하는 줄 번호가 추가되는 grep -n ^b example와 다릅니다 . 출력만 보고 그에 따라 줄 번호를 매기 면서 원본 파일의 줄 번호를 알아보세요 .grepgrepcatgrep

따라서 입력 파일이 주어지면

$ cat example 
bar
foo
basf

우리는:

$ grep -c ^b example 
2

$ grep ^b example |cat -n
     1  bar
     2  basf

$ grep -n ^b example
1:bar
3:basf

답변2

좋은 명령:

  1. grep -c ^b example: 문자로 시작하는 줄에 대해 일치하는 줄 수를 출력하고 b,

  2. grep ^b example | cat -n: grep 명령의 결과를 cat 명령에 전달하고 해당 줄 번호를 나열합니다. 힘의 줄 번호와 함께 -n나열 하십시오.cat

예:

example.txt 콘텐츠:

media sound3
media sound1
media sound2
find sound -type f -name sound[0-9] -printf 'media %f\n' > file.txt
find sound -type f -name sound[0-9] -exec bash -c 'echo media bash >> file.txt' {} \;
find sound -type f -name sound[0-9] -exec bash -c "f='{}'; echo media $( basename ${f}) >> file.txt" \;

(1)의 결과:

3

(2)의 결과:

1   media sound3
2   media sound1
3   media sound2

관련 정보