끝에 $가 있는 줄을 제외하고 $가 포함된 줄 삭제

끝에 $가 있는 줄을 제외하고 $가 포함된 줄 삭제

$예를 들어 다음 문자가 포함된 줄 을 삭제하고 싶습니다 .

a$df
aheh$b$
t$$a

나는 그것을 유지하고 싶다하나 $, 줄 끝에서:

abc$
abcdwh$

텍스트 파일에는 2M 줄이 포함되어 있습니다.

답변1

$의 메타문자는 sed두 가지 방법으로 문자 그대로 일치됩니다.

  • 백슬래시 \$하거나
  • 대괄호로 묶으세요.[$]

그러나 또 다른 방법이 있습니다. $정규식의 마지막 문자가 아닌 경우 리터럴로 처리하는 것입니다. 그래서 다음

sed -e '/$./d' file

귀하의 문제에 맞춰져 있습니다.

답변2

$줄 뒤에 내용이 있으면( .) 해당 줄을 삭제합니다.

sed '/\$./d' file

이 모드는 다음에서도 작동합니다 grep.

grep -v '\$.' file

관련 정보