Sed 도움말 - 특정 패턴을 제외하는 방법

Sed 도움말 - 특정 패턴을 제외하는 방법

제목 표현이 최선이 아닐 수도 있습니다. 하지만 내 문제를 설명하겠습니다.

저는 자동차 데이터 세트를 작업 중인데 다음과 같습니다.

31.0   4   119.0   82.00   2720.   19.4   80s 1       "ford ranger"
36.0   4   105.0   77.00   6240.   28.3   70s 1       "ford granada" 

내 목표는 다음 데이터 포인트 사이에 공백을 추가하는 것입니다.

80s 1
70s 1

따라서 다음과 같아야 합니다. 데이터 포인트 사이에는 총 2개의 공백이 있어야 합니다.

31.0   4   119.0   82.00   2720.   19.4   80s  1       "ford ranger"
36.0   4   105.0   77.00   6240.   28.3   70s  1       "ford granada" 

나는 다음 명령을 생각해 냈습니다. sed s/s( )/ /

하지만 그것이 하는 일은 10년 후에 를 삭제하는 것이므로 내 데이터는 다음과 같습니다.

31.0   4   119.0   82.00   2720.   19.4   80  1       "ford ranger"
36.0   4   105.0   77.00   6240.   28.3   70  1       "ford granada" 

그렇다면 80초 후에 공백을 추가하지만 s를 제거하지 않는 명령을 어떻게 작성할 수 있습니까?

답변1

비결은 실제로 교체하고 싶다는 것입니다s 뒤에 공백이 옵니다통과s 뒤에 공백 두 개가 옵니다..

sed 's/s /s  /'
        ~  ~~  -->  Two spaces
        |
        \-------->  One space

관련 정보