두 번째 파일 목록을 기준으로 파일 행 필터링

두 번째 파일 목록을 기준으로 파일 행 필터링

file1.tabular"요소" 정보 열이 3개 이상 포함되어 있습니다.

element1 235 oval red \
element2 334 oval red \
element3 356 rectangular blue

file2.txt단일 열을 포함합니다.

element1\
element3

file1.tabular필터링 하고 다른 이름으로 저장하고 싶습니다 file3.tabular. 여기에는 요소만 포함되지만 예를 들어 file2.txt3개 정보 열은 모두 포함됩니다.file1.tabular

element1 235 oval red\
element3 356 rectangular blue

Ubuntu에서 이 문제를 해결하는 명령이 있습니까? 전문가의 도움에 감사하겠습니다. 감사해요

답변1

당신은 찾고있을 수 있습니다

grep -f file2.txt file1.tabular > file3.tabular

-f옵션은 grep독자에게 그 안에 있는 패턴을 찾도록 지시합니다 file2.txt. 검색을 에 적용 file1.tabular하고 출력을 로 리디렉션합니다 file3.tabular.

\파일에 진정한 "줄 연속" 이스케이프(모든 줄의 끝)가 없다고 가정합니다 .


참고: 정규식 기반 검색과 마찬가지로 콘텐츠를 구성할 때 주의가 필요합니다 file2.txt.

  • 문자 그대로 일치시키려는 정규식 특수 문자는 이스케이프해야 합니다.
  • 또한 부분 일치(예: 에 있는 단어의 하위 문자열만 일치하는 패턴 ) grep가 기본적으로 표시됩니다 . file1.tabular이를 완화하려면 -w스위치를 사용하여 "전체 단어" 일치만 허용할 수 있습니다.

관련 정보