저는 명령줄을 더 잘 배우려고 노력 중이며 이 두 명령의 차이점이 무엇인지 알고 싶습니다.
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
와 다릅니다 . 출력만 보고 그에 따라 줄 번호를 매기 면서 원본 파일의 줄 번호를 알아보세요 .grep
grep
cat
grep
따라서 입력 파일이 주어지면
$ 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
좋은 명령:
grep -c ^b example
: 문자로 시작하는 줄에 대해 일치하는 줄 수를 출력하고b
,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