sed
해결책 은 다음과 같습니다 .
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
명령 sed 's/^://'
이 수행하는 것은 각 줄 의 시작 부분에서 s
콜론 문자 :
를 ^
빈 문자열 로 대체 하는 것 //
입니다.
여기 awk
에 필드 구분 기호를로 변경하고 ^:
위에서 설명한 두 번째 필드를 출력 하는 까다로운 솔루션이 있습니다 .
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
이 작업은 grep
( description )으로 도 수행 할 수 있습니다 . 아마도 이것이 대량의 데이터에 가장 빠른 솔루션 일 수 있습니다.
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
또는 다음 명령으로 파일을 직접 처리하십시오. 여기서 제한 사항 ^
이 제거됩니다.
grep -Po 'Logfile started :\K.*' process.log
위의 내용은 sed
그룹을 통해 달성 할 수도 있습니다 ()->\1
.
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
식이 ^.*<something>.*$
전체 줄과 일치하는 곳에 가 포함 <something>
됩니다. 이 명령 s/old/new/
은이 줄을 첫 번째 캡처 그룹의 내용으로 대체합니다 (괄호 안의 표현이 더 구체적 일 수 있음). 이 옵션 -r
은 확장 정규식을 활성화합니다. 이 옵션 -n
은 정상 출력을 억제 sed
하고 마지막으로 명령 p
이 일치 항목을 인쇄합니다.