Programing

줄 끝에 줄 번호와 적중 횟수를 표시하도록 grep 출력을 어떻게 형식화 할 수 있습니까?

lottogame 2020. 2. 29. 13:35
반응형

줄 끝에 줄 번호와 적중 횟수를 표시하도록 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 줄 번호를 반환합니다.

-i무시 케이스입니다. 대소 문자 구분이 필요하지 않은 경우에만 사용

$ 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

명령 대체를 사용하여 총 널 수를 인쇄하십시오.

$ 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 -npe 'chomp; /null/ and print "$_ - Line number : $.\n" and $i++;$_="";END{print "Total null count : $i\n"}'

리눅스 명령 리눅스 http://linuxcommand.org/man_pages/grep1.html에 대한이 링크를 참조 하십시오

줄 번호, 코드 줄 및 파일을 표시하려면 터미널 또는 cmd에서 GitBash (Powered by terminal) 명령을 사용하십시오.

grep -irn "YourStringToBeSearch"

미래에 당신에게 도움이 될 것 같아요. 여러 문자열 및 출력 행 번호를 검색하고 출력을 통해 찾아 보려면 다음을 입력하십시오.

egrep -ne 'null|three'

표시됩니다:

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

egrep -ne 'null|three' | less

적은 세션에서 출력을 표시합니다

6 월

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



반응형