programing

행 끝에 행 번호 및 히트카운트를 표시하도록 GREP 출력을 포맷하려면 어떻게 해야 합니까?

newstyles 2023. 4. 19. 22:33

행 끝에 행 번호 및 히트카운트를 표시하도록 GREP 출력을 포맷하려면 어떻게 해야 합니까?

파일의 문자열을 일치시키기 위해 grep을 사용하고 있습니다.다음은 샘플 파일입니다.

example one,
example two null,
example three,
example four null,

grep -i null myfile.txt돌아온다

example two null,
example four null,

일치하는 행을 회선 번호와 함께 다음과 같이 반환하려면 어떻게 해야 합니까?

  example two null, - Line number : 2
  example four null, - Line number : 4
  Total null count : 2

c는 일치하는 행의 합계를 반환하지만, 추가하는 형식을 올바르게 지정하는 방법을 모릅니다.total null count줄 번호를 어떻게 붙여야 할지 모르겠어요.

내가 뭘 할 수 있을까?

-n회선번호를 반환합니다.

-iignore-case 용입니다.대소문자를 일치시킬 필요가 없는 경우에만 사용

$ grep -in null myfile.txt

2:example two null,
4:example four null,

와의 결합awk일치 후에 라인 번호를 인쇄하려면:

$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}'

example two null, - Line number : 2
example four null, - Line number : 4

명령어 대체를 사용하여 총 null 카운트를 출력합니다.

$ echo "Total null count :" $(grep -ic null myfile.txt)

Total null count : 2

사용하다-n또는--line-number.

체크 아웃man grep더 많은 옵션을 제공합니다.

사용하다grep -n -i null myfile.txt각 일치 앞에 있는 행 번호를 출력합니다.

GREP에는 일치하는 총 회선의 카운트를 인쇄하는 스위치가 없는 것 같습니다만, 그것을 실현하기 위해서 grep의 출력을 wc에 파이프로 연결하기만 하면 됩니다.

grep -n -i null myfile.txt | wc -l

또는 사용awk대신:

awk '/null/ { counter++; printf("%s%s%i\n",$0, " - Line number: ", NR)} END {print "Total null count: " counter}' file

grep회선을 검색하여 회선번호를 출력하지만 다른 것은 "프로그래밍"할 수 없습니다.임의의 텍스트를 포함하여 다른 "프로그래밍"을 수행하려면 awk를 사용할 수 있습니다.

$ awk '/null/{c++;print $0," - Line number: "NR}END{print "Total null count: "c}' file
example two null,  - Line number: 2
example four null,  - Line number: 4
Total null count: 2

또는 셸만 사용하는 경우(bash/ksh)

c=0
while read -r line
do
  case "$line" in
   *null* )  (
    ((c++))
    echo "$line - Line number $c"
    ;;
  esac
done < "file"
echo "total count: $c"

또는 perl(완전성을 위해...)로 지정합니다.):

perl -npe 'chomp; /null/ and print "$_ - Line number : $.\n" and $i++;$_="";END{print "Total null count : $i\n"}'

Linux 명령어 linux http://linuxcommand.org/man_pages/grep1.html 에 대해서는, 이 링크를 참조해 주세요.

no 줄, 코드 줄 및 파일을 표시하려면 터미널 또는 cmd에서 이 명령어 GitBash(단말기로 전원 공급)를 사용합니다.

grep -irn "YourStringToBeSearch"

미래에 도움이 될 것 같아서요여러 문자열 및 출력 행 번호를 검색하고 출력을 참조하려면 다음과 같이 입력합니다.

egrep -ne 'null|three'

다음과 같이 표시됩니다.

2:example two null,  
3:example three,  
4:example four null,   

egrep -ne 'null|three' | less

보다 적은 세션으로 출력을 표시합니다.

HTH 준

언급URL : https://stackoverflow.com/questions/3968103/how-can-i-format-my-grep-output-to-show-line-numbers-at-the-end-of-the-line-and