여러 파일에서 시간 문자열의 형식을 다시 지정하는 방법은 무엇입니까?

여러 파일에서 시간 문자열의 형식을 다시 지정하는 방법은 무엇입니까?

내 파일에는 다음 줄이 포함되어 있습니다

15.07.2015 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

첫 번째는 비표준 형식의 타임스탬프입니다. 이를 다음 형식으로 인라인으로 바꾸려면 어떻게 해야 합니까?

2015-07-15 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

답변1

적절한 패턴과 함께 SED를 사용
s#([0-9]{2})\.([0-9]{2})\.([0-9]{4})#\3-\2-\1#
하고 필요한 경우 행 앵커의 시작을 일치시켜 더욱 강력하게 만들 수 있습니다.

답변2

Perl one-liner를 사용하는 또 다른 방법은 다음과 같습니다.

$ perl -i -ne 's/^(\d{2})\.(\d{2})\.(\d{4})/$3-$2-$1/; print' in.txt
$ cat in.txt    
2015-07-15 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

관련 정보