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