파일에서 ".png"가 포함된 줄을 모두 삭제하려면 어떻게 해야 합니까?

파일에서 ".png"가 포함된 줄을 모두 삭제하려면 어떻게 해야 합니까?

URL 목록이 있는데 그 중 일부는 이미지를 가리킵니다.

http://s.thebrighttag.com/iframe?c=A5lqOqP
http://s.wordpress.com/imgpress?resize=136,136&url=http%3A%2F%2Fdata.whicdn.com%2Fimages%2F2833524%2F4thofJuly-collage_large.jpg%3F1278084193

파일에서 이 줄을 어떻게 제거할 수 있나요?

답변1

cat file | grep -v "\.png" >new_file_without_pngs

업데이트된 댓글:

egrep -iv "\.(png|jpg|jpeg|gif|etc)" file >new_file

답변2

내부 편집 변형의 경우 sed다음과 같이 사용할 수 있습니다.

$ sed -i -r 's/.*\.(png|jpg).*//I' file

.png파일에 포함되거나 직접 포함된 줄을 삭제합니다 . 전달된 옵션은 .jpg"제자리에서 편집"을 의미합니다. 이 명령을 실행하기 전에 파일을 백업하세요. 확실하지 않은 경우 먼저 이 옵션을 사용하지 않고 시도해 보세요.-ised-i

I플래그는 대소문자를 구분하지 않는 일치를 수행하는 데 사용됩니다.

답변3

Ex 모드에서 Vim을 사용할 수 있습니다:

ex -sc 'g/\.png/d' -cx file
  1. g글로벌 검색

  2. d삭제

  3. x저장하고 닫습니다

답변4

당신이 가지고 있다면sponge다음과 같이 파일 내용을 바꿀 수 있습니다.

grep -E -iv "\.(png|jpg|jpeg|gif)" file | sponge file

관련 정보