이런 파일이 있어요
Sampleoutput1[Fri Jun 10 06:11:59 2016]Local/ESSBASE0///139929633446208/Error(10
Sampleoutput1Local/ESSBASE0///139929633446208/[Fri Jun 11 06:11:59 2016]Error(10
날짜 필드를 추출하고 해당 날짜를 구분 기호($)가 있는 열로 추가해야 합니다. 날짜는 파일의 어느 위치에나 나타날 수 있습니다.
[Fri Jun 10 06:11:59 2016]$Sampleoutput1[Fri Jun 10 06:11:59 2016]Local/ESSBASE0///139929633446208/Error(10
[Fri Jun 11 06:11:59 2016]$Sampleoutput1Local/ESSBASE0///139929633446208/[Fri Jun 11 06:11:59 2016]Error(10
답변1
날짜가 항상 [
... 에 포함되어 있고 ]
이것이 행의 첫 번째라고 가정하면 [
다양한 방법을 사용할 수 있습니다. 내가 일반적으로 사용하는 두 가지:
두 가지 명령을 사용하십시오 cut
(게으른 옵션이지만 그 기능을 이해하기 쉽습니다).
cut -d'[' -f2 $srcfile | cut -d ']' -f1
sed
간단한 정규식을 사용하는 표준 옵션:
sed 's/.*\[\([^]]*\)].*/\1/' $srcfile
출력이 여러 문자를 포함하여 더 복잡하다면 더 복잡한 문자열이 포함된 옵션을 [
사용해야 합니다 .sed
sed 's/.*\[\(... ... .. ..:..:.. ....\)].*/\1/' $srcfile
편집: 수정된 질문은 문자열 앞에 추가하고 나머지 줄은 변경하지 않으려고 합니다. 그래서 우리는 sed
약간 수정된 변형을 사용합니다:
sed 's/\(.*\[\(... ... .. ..:..:.. ....\)].*\)/[\2]$\1/' $srcfile
결과:
[Fri Jun 10 06:11:59 2016]$Sampleoutput1[Fri Jun 10 06:11:59 2016]Local/ESSBASE0///139929633446208/Error(10
[Fri Jun 11 06:11:59 2016]$Sampleoutput1Local/ESSBASE0///139929633446208/[Fri Jun 11 06:11:59 2016]Error(10