Linux에서 파일의 특정 줄 뒤의 단어를 검색하는 방법은 무엇입니까?

Linux에서 파일의 특정 줄 뒤의 단어를 검색하는 방법은 무엇입니까?

100줄짜리 파일이 있고 "happy"라는 단어를 검색해야 하지만 검색은 파일의 50줄부터 시작해야 합니다. Linux에서 사용되는 특정 grep 명령은 무엇입니까?

답변1

head+ grep및 그룹 명령을 사용하여 {...}동일한 입력을 공유 할 수도 있습니다 .

{ head -n 50 >/dev/null; grep PATTERN; } <infile

이 방법은 head첫 번째 n행만 가져와서 에 덤프 /dev/null하고 나머지 행은 처리됩니다 grep.

답변2

다음은 sed라인 50에서 파일 끝까지 이동한 후 이를 사용하여 grep패턴을 검색하는 방법입니다.

sed -n '50,$p' file.txt | grep "happy"

아니면 sed정확히 다음을 사용하세요.

sed -n '50,$s/happy/&/p' file.txt

다음은 몇 가지 추가 sed방법입니다("Stéphane Chazelas"에게 감사드립니다).

sed '50,$!d;/happy/!d' file.txt
sed -n '50,${/happy/p;}' file.txt

답변3

tail51번째 줄부터 시작하여 파일 내용을 가져오는 데 사용됩니다 grep. -i대소문자를 무시하고("Happy", "HAPPY" 등도 일치시킬 수 있음) 앞에 공백을 추가하여 "happy"만 일치시키고 해당 문자 시퀀스를 포함하는 다른 단어는 일치시키지 않는 데 사용됩니다 .

tail -n +51 filename.txt | grep -i " happy"

답변4

필요할 것이예요 awk:

awk 'NR>50' filename.txt | grep '\bhappy\b'

관련 정보