![sed 및 역참조를 사용하여 줄의 일부를 추출하고 싶습니다.](https://linux55.com/image/127808/sed%20%EB%B0%8F%20%EC%97%AD%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A4%84%EC%9D%98%20%EC%9D%BC%EB%B6%80%EB%A5%BC%20%EC%B6%94%EC%B6%9C%ED%95%98%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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