아래와 같은 타임스탬프 형식이 포함된 파일이 있습니다.
'2020-03-07T14:42:36Z UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
이 타임스탬프 형식을 다음으로 변경하고 싶습니다.
2020-03-07 14:42:36 UTC
이 파일에.
직접 형식을 변경할 수 있는 권한이 없는 로그 파일인데, 이렇게 수십억 줄이 들어있습니다.
답변1
sed -e 's/T/ /' -e 's/Z//' file
또는 동등하게,
sed 's/T/ /; s/Z//' file
먼저 T
파일의 각 줄에 있는 첫 번째 문자를 공백으로 바꾼 다음 첫 번째로 나타나는 Z
. 이것은 변환할 것이다
'2020-03-07T14:42:36Z UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
~ 안으로
'2020-03-07 14:42:36 UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
데이터를 저장하려면 새 파일로 리디렉션하세요. 파일에서 내부 편집을 수행하려면 먼저 편집이 올바르게 수행되었는지 확인하십시오(명령은 각 줄에 이러한 타임스탬프가 정확히 하나 이상도 없고 이하도 없다고 가정합니다). sed -i
파일을 제자리에서 변경하는 데 사용할 수도 있습니다 .