특정 요소를 삭제하는 sed 구문

특정 요소를 삭제하는 sed 구문

"sed"를 사용하여 "\n", "\r", "connected"를 삭제하고 싶습니다. 그리고 문자열에 ""가 있습니다.

echo "   Connected. 
97  " | sed -e 's/[Connected.|\n|\r\ ]//g'

반환된 결과는 "97"이 될 것으로 예상됩니다.

답변1

\n클래식(POSIX)에서는 이 방법으로 제거할 수 없습니다 sed. 이는 줄 구분 기호이지 대체되는 문자열의 일부가 아닙니다 s///. 나중에 제거해야 합니다 tr.

sed -e 's/Connected\.//g' | tr -d ' \r\n'

(우리는 를 사용했기 때문에 tr관심 있는 모든 문자를 제거하도록 했습니다)

s///sed그러나 다음 옵션을 사용하여 전체 파일을 한 번에 작동하는 -z(대용량 파일에는 좋지 않음) GNU의 단일 지시문을 사용할 수 있습니다 .

sed -z -r -e 's/Connected\.|\n|\r| //g'

관련 정보