sed 또는 Perl을 사용하여 파일에서 한 줄만 왼쪽으로 정렬하는 방법

sed 또는 Perl을 사용하여 파일에서 한 줄만 왼쪽으로 정렬하는 방법

이렇게 하면 각 줄 시작 부분의 모든 공백과 탭이 제거됩니다.

sed 's/^[ \t]*//' file

queued.max.requests=1000하지만 파일의 매개변수 만 정렬하고 싶다고 가정해 보겠습니다.

  • 입력 예:
        log.flush.interval.messages=20000
        queued.max.requests = 1000
        producer.purgatory.purge.interval.requests=100
    
  • 원하는 출력:
         log.flush.interval.messages=20000
    queued.max.requests=1000
         producer.purgatory.purge.interval.requests=100
    

sed 's/^[ \t]*//'우리는 이 상황 에 어떻게 적응합니까 ? 또한 sed/perl에서 " ="에 대한 매개변수 사이와 프로시저의 값에 대한 " " 사이의 =공백을 제거하고 싶습니다 .

답변1

어때요?

sed '/queued\.max\.requests/s/[\t ]\{1,\}//g' file

또는

sed -r '/queued\.max\.requests/s/[\t ]+//g' file

=이렇게 하면 포함된 줄의 모든 공백(줄의 시작 부분과 주변 공백부터)만 제거됩니다 queued.max.requests.

답변2

$ sed 's/^[[:space:]]*\(queued\.max\.requests\)/\1/; s/ *= */=/' file
    log.flush.interval.messages=20000
queued.max.requests=1000
    producer.purgatory.purge.interval.requests=100

관련 정보