다른 문자 앞의 마지막 문자 제거

다른 문자 앞의 마지막 문자 제거

명령어 에 관해 질문이 있습니다 sed. 빈 공간과 선택한 문자 사이의 문자(또는 문자 집합)를 제거할 수 있나요? 다음과 같이 여러 줄의 텍스트가 포함된 목록이 있는 경우:

a = 5 * x + 3 n\exit>

a = 5 * x + 7 abndc\exit>

... 등 기타

얻기 위해

a = 5 * x + 3

a = 5 * x + 7

기타 등등

명령을 사용하고 있습니까 sed?

따라서 기본적으로 다음 공간에서 모든 것을 제거합니다 3.>

답변1

2가지 접근법

  1. 마지막 공백까지 모든 것을 유지하십시오.

    sed 's/\(.*\) .*/\1/'
    
  2. 줄 끝에서 공백과 공백이 아닌 부분을 찾아서 제거하십시오.

    sed 's/ [^ ]*$//'
    

답변2

sed -r 's/(.*)( \S+>)/\1/' file

a = 5 * x + 3
a = 5 * x + 7

관련 정보