sed
출력을 교체하면서 뭔가를 하려고 합니다 . 세부 사항은 다음과 같습니다. 출력의 경우 나머지 숫자의 공백 Date:080910 111411
만 유지하고 필터링하고 싶습니다 . Date:XXXXXX
일반적으로 s/Date:[0-9]{6}//g
문제는 해결될 것입니다. 그렇죠? 그러나 Date:080910 111411
출력은 curl
API에서 검색하는 명령에서 나옵니다. sed
실제로 작성된 내용은 다음과 같습니다 .
sed 's/;Submitted-on *:/ Date:/g'
나는 그 출력을 필터링하려고 노력했지만 만료된 시간을 없애고 원시 yymmdd를 제공하기 위해 sed를 사용할 수 있는 위치를 이해하지 못합니다.
누구든지 어떤 아이디어가 있습니까?
답변1
-E
확장 정규식 옵션을 설정한 것을 기억하시나요 ? 그렇지 않으면 작성해야 합니다\{6\}
(기본 정규식 구문).s/Date:[0-9]{6}//g
실제로 유지하고 싶은 부분을 삭제합니다 .- 공백과 뒤에 오는 숫자를 제거하려면 다음 단계를 따르세요.
sed 's/ [0-9]*$//'
답변2
이렇게 하면 다음만 유지됩니다 Date:XXXXXX
.
echo "Date:080910 111411" | sed 's/ .*//'
이는 더 엄격하며 "Date:"로 계속 시작합니다.
echo "Date:080910 111411" | sed -r 's/^Date:([0-9]{6}) .*$/\1/'