같은 문자열에서 줄 추출

같은 문자열에서 줄 추출

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

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

세 번째 열의 2개 문자열을 포함하는 파일은 다음과 같습니다.

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

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

감사해요

답변1

사용 awk:

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

사용 sed:

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

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

답변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

관련 정보