누군가 sed
이 명령이 무엇을 달성하려고 하는지 설명할 수 있습니까?
sed 's/^[[:space:]]*//;s/[[:space:]]*$//
줄의 시작 부분에서 공백 문자를 검색한다는 것을 알고 있지만 무엇을 해야 할지 알 수 없습니다.//;s/[[:space:]]*$//
답변1
여기에는 두 가지 명령이 있습니다 s
. sed
세미콜론으로 구분된 명령 목록을 사용할 수 있습니다. 다음과 같이 동일한 내용을 스크립트 파일에 넣을 수 있습니다.
s/^[[:space:]]*//
s/[[:space:]]*$//
또한 s
명령을 잘못 구문 분석 했습니다 s
.찾다, 이것은바꾸다: 두 개의 매개변수, 일치시킬 문자열과 ()로 대체할 문자열을 사용합니다 s/find/replace/
.
그래서, s/^[[:space:]]*//
그것은 의미합니다
s (substitute)
/^[[:space:]]*/ (leading whitespace)
// (with an empty string)
두 번째 명령의 s/[[:space:]]*$//
의미후행 공백을 빈 문자열로 바꾸기.
답변2
내가 아는 한 이것은 단지 대체 체인일 뿐입니다. 먼저 선행 공백을 모두 제거한 s/^[[:space:]]//
다음 계속 적용하여 s/[[:space:]]$//
모든 후행 공백을 제거합니다.