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"
