텍스트 파일의 여러 정규식과 일치하는 줄을 텍스트 파일에서 제거합니다.

텍스트 파일의 여러 정규식과 일치하는 줄을 텍스트 파일에서 제거합니다.

내가 가지고 있다고 가정하자파일A.txt다음과 같이 보입니다.

43287134, string1, string2
1233, foo, bar
973, barfoo, foobar
7464, asdf, ghjk

나는 가지고있다파일B.txt다음 정규식을 한 줄로 구분하여 사용하세요.

^973,
^1233,

신청하고 싶어요파일B.txt정규 표현식파일A.txt, 최종 결과가 다음과 같도록 일치하는 줄을 제거합니다.

43287134, string1, string2
7464, asdf, ghjk

이를 수행하는 데 사용할 수 있는 도구가 있습니까? 감사해요!

답변1

이것이 바로 grep이 기능을 수행하도록 설계된 것입니다.

grep -v -f FileB.txt FileA.txt
  • -f <filename>파일에서 정규식 읽기(명령줄 대신)
  • -v역방향 일치(일치하지 않는 줄 인쇄)

산출:

43287134, string1, string2
7464, asdf, ghjk

답변2

이 작업은 다음을 통해 수행할 수도 있습니다 sed.

while read -r REG_EX; do sed -i "/$REG_EX/d" FileA.txt; done<FileB.txt

관련 정보