sed 및 역참조를 사용하여 줄의 일부를 추출하고 싶습니다.

sed 및 역참조를 사용하여 줄의 일부를 추출하고 싶습니다.
 1.The Greater Company :(Ranked 2) 
 5.United Taxi Service :(Ranked 3) 
31.The Cacao Company :(Ranked 4) 
40.Monster Inc. :(Ranked 5)
55.Afala, Industrial Strength :(Ranked 6) 
60.The North Company :(Ranked 7) 

회사번호와 회사명만 표시하고 싶습니다. 나머지 라인을 보여주고 싶지 않습니다.

 1.The Greater Company  
 5.United Taxi Service 
31.The Cacao Company  
40.Monster Inc. 
55.Afala, Industrial Strength 
60.The North Company

sed 's/: .* //' filename.txt로 이 작업을 수행할 수 있습니다. 역참조가 있는 패턴을 사용하여 위의 결과를 어떻게 얻을 수 있습니까? 일치시키려는 패턴은 ([0-9]* .* :)입니다.

답변1

모든 줄이 다음으로 시작하는 경우 [0-9]*명시적으로 일치시킬 필요는 없습니다. :구분 기호 만 캡처(포함하지 않음)하면 됩니다.

sed 's/\(^[^:]*\) :.*/\1/' file
  1.The Greater Company
  5.United Taxi Service
  31.The Cacao Company
  40.Monster Inc.
  55.Afala, Industrial Strength
  60.The North Company

관련 정보