grep -n -m 1 SEARCH_TERM FILE_PATH |sed 's/\([0-9]*\).*/\1/'
grep 스위치
-n = 줄 번호 포함
-m 1 = 하나 일치
sed 옵션 (스트림 편집기) :
's/X/Y/'
-X를 Y로 대체
\([0-9]*\)
-숫자를 0 번 또는 여러 번 일치시키는 정규식이 발생했습니다. 이스케이프 된 괄호, 괄호 안의 정규식과 일치하는 문자열은 Y (대체 문자열)의 \ 1 인수가됩니다.
\([0-9]*\).*
- .*
제로 또는 여러 번 발생하는 모든 문자와 일치합니다.
grep에서 변수 대체를 위해 $ ()가 필요합니다.
cpLines=$(grep -n -m 1 $VAR $MYDIR/Configuration.xml |cut -f1 -d: )
-------------------다음과 같이 시도하십시오.
awk -v search="$var" '$0~search{print NR; exit}' inputFile
에서 awk
, / /
해석합니다 awk
그대로 변수를. match
( ~
) 연산자 를 사용해야 합니다. 여기서 우리가하는 일은 입력 라인에 대한 변수를 찾는 것입니다. 일치하면 저장된 줄 번호를 인쇄 NR
하고 종료합니다.
-v
위의 예에서 awk
변수 ( search
) 를 만들 수 있습니다 . 그런 다음 bash
변수 ( $var
) 를 할당합니다 .
grep -n -m 1 SEARCH_TERM FILE_PATH | grep -Po '^[0-9]+'
설명:
-Po = -P -o
-P
Perl 정규식 사용
-o
일치하는 문자열 만 인쇄 (전체 행이 아님)
파이핑을 시도하십시오.
grep -P 'SEARCH TERM' fileName.txt | wc -l
출처
https://stackoverflow.com/questions/22019847