awk - $2에 문자열이 포함되어 있으면 줄 삭제

awk - $2에 문자열이 포함되어 있으면 줄 삭제

$2에 문자열이 포함되어 있으면 전체 줄을 삭제하고 싶습니다.

문자열 예 = "hello123"

입력 예:

Hey:hello123
Hey:hello

예상 출력:

Hey:hello

답변1

<input.txt awk -F: '$2 !~ "hello123"' >output.txt

필드 구분 기호로 설정하고 :두 번째 열에 포함되지 않은 모든 행을 인쇄합니다.hello123


이것이 스크립트의 일부가 될 경우 검색 패턴과 함께 awk에 쉘 변수를 전달하는 것이 도움이 될 수 있습니다.

var='hello123'
awk -F: -v pattern="$var" '$2 !~ pattern' input.txt > output.txt

답변2

Command

First method

sed -n -i '/^Hey:hello123$/!p'  filename


output

cat filename
Hey:hello


second method

python

#!/usr/bin/python

    import re
    k=open('l.txt','r')
    u=open('o.txt','w')
    for i in k:
        if "Hey:hello123" not in i:
            u.write(i)

output
cat o.txt 
Hey:hello


Third method

 awk -F ":" '$2 != "hello123" {print $0}' filename

    If you want to replace in orginal file use below method

    awk -F ":" '$2 != "hello123" {print $0}' l.txt >temperory && mv temperory filename


    output

    Hey:hello

관련 정보