다음 명령을 사용하여 다음을 포함하는 줄을 제거하고 있습니다.hotmail
sed -i '/^[^\t]*\t[^\t]*hotmail/d' ./file
테스트 데이터는
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
현재는 첫 번째 행만 삭제됩니다. 두 번째와 세 번째 줄에는 대문자가 포함되어 있으므로 제거되지 않습니다. 대소문자를 구분하지 않게 변경하려면 어떻게 해야 하나요?
답변1
이 시도:
sed -i '/^[^\t]*\t[^\t]*hotmail/dI' ./file
그러나 최신 GNU sed를 사용하지 않으면 문제가 발생할 수 있습니다.
sed -i '/^[^\t]*\t[^\t]*[hH][oO][tT][mM][aA][iI][lL]/d' ./file
이 링크는 GNU sed 매뉴얼로 연결됩니다설명 I
및 기타 수정자.
답변2
sed에는 대소문자를 구분하지 않는 일치를 위해 추가할 수 있는 I 플래그가 있습니다.
바라보다https://stackoverflow.com/questions/2157288/using-sed-to-delete-a-case-insensitive-matched-line