동일한 문자열에서 줄 추출

동일한 문자열에서 줄 추출

다음과 같은 테이블이 있습니다.

여기에 이미지 설명을 입력하세요.

세 번째 열에 2개의 문자열이 포함된 파일: applepotato

나는 이것을 얻기 위해 사과와 감자라는 문자열을 포함하는 제목과 모든 행을 추출하고 싶습니다.

여기에 이미지 설명을 입력하세요.

감사해요

답변1

사용 awk:

awk 'FNR == 1 || /potato|apple/'

사용 sed:

sed -n '1p; /potato\|apple/p'

potato|apple두 경우 모두 줄 번호 1과 일치하는 줄이 인쇄됩니다.

답변2

다음은 일반 텍스트로 구성된 txt 테이블입니다.

A       B       C       D       E
21      63      apple   yellow  5
23      69      lemon   green   6
45      135     orange  yellow  7
67      201     mango   green   4
54      162     potato  maroon  5

덜 복잡한 솔루션을 생각할 수 있지만 약간의 해킹이라고 생각합니다 :-) 테이블 txt 파일이 호출된다고 가정합니다.table1

$ head -1 table1 && grep '\b\(potato\|apple\)\b' table1

그러면 첫 번째 행이 얻어지고 grep결과가 추가됩니다. \b단어 경계입니다. 따라서 이렇게 하면 "grapple(hook)"과 같은 단어가 필터링됩니다. :) 또 다른 더 복잡한 솔루션은 A, B, C...가 탭으로 구분되어 있다고 가정합니다 \t.

$ grep '\(\b\(potato\|apple\)\b\|\([A-Z]\|\(\t\|\n?$\)\)\)' table1

관련 정보