다음과 같은 테이블이 있습니다.
세 번째 열의 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