이렇게 하면 각 줄 시작 부분의 모든 공백과 탭이 제거됩니다.
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