쉼표 앞의 문자열과 일치하는 줄을 삭제합니다.

쉼표 앞의 문자열과 일치하는 줄을 삭제합니다.

저는 bash 스크립팅을 처음 접했기 때문에 도움을 주시면 대단히 감사하겠습니다. 아래는 내가 달성하고 싶은 것입니다.

두 개의 텍스트 파일이 있습니다. 두 번째 파일의 쉼표 앞의 문자열과 일치하는 첫 번째 파일의 모든 줄을 삭제하고 싶습니다.

예를 들어

파일 1:

this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442

파일 2:

this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22

원하는 출력: 공백

답변1

당신은 그것을 사용할 수 있습니다 :

grep -vFf file2 file1

쉼표 다음에 일치하더라도 여전히 줄을 삭제합니다.

답변2

간단한 sed방법으로 이를 수행할 수 있습니다.

IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
  sed -i '/^'"$i"',/d' file1.txt
done

관련 정보