sed 앞 칸 제거

오늘 스 크 립 트 를 쓸 때 문자열 앞의 빈 칸 을 제거 하고 인터넷 에서 SED 를 찾 았 습 니 다. 다음 과 같 습 니 다.
sed 's/^[[:space:]]\+//'
그리고 나 서 나 는 나의 문자열 에 사용 했다.
re=$x|sed 's/^[[:space:]]\+//'
echo $re
이상 하 게 왜 자꾸 빈 칸 을 출력 하 는 지 모르겠다.
한참 동안 해 보 았 지만 해결 하지 못 하고 바로 master 를 찾 았 다.
마지막 으로 그 는 분명히 두 가지 잘못 이 있다 고 말 했다.
첫째, 파이프 부 호 는 앞의 출력 을 뒤의 입력 으로 하고 내 앞 에 나무 가 출력 이 있 으 면 SED 에 게 값 을 전달 할 수 없다.
둘째, SED 는 화면 에 직접 인쇄 되 어 있 으 며 내용 이 없 기 때문에 실행 자 를 추가 해 야 합 니 다.
 
그래서 $re 를 인쇄 하려 면 다음 과 같이 바 꿔 야 합 니 다.
re=`echo $x | sed 's/^[[:space:]]\+//'`
이때 출력 을 볼 수 있 습 니 다.
거꾸로
 
마지막 으로 빈 칸 을 제거 하고 SED 하위 프로 세 스 를 호출 하기 때문에 자원 낭 비 를 초래 할 수 있 으 므 로 셸 에서 직접 처리 하 는 것 이 좋 습 니 다. 자신 이 chinaunix 에 가서 사람 에 게 물 었 습 니 다. 답 은 다음 과 같 습 니 다.
 

  
  
  
  
  1. [joe@joe-laptop ~]$ a='Description:    CentOS release 5.5 (Final)' 
  2. [joe@joe-laptop ~]$ echo ${a#* } 
  3. CentOS release 5.5 (Final) 

다른 한 가지:

  
  
  
  
  1. echo "Description:    CentOS release 5.5 (Final)"|awk -F: '{sub(/^  */,"",$2);print $2}' 

좋은 웹페이지 즐겨찾기