교체 전 sed 출력

교체 전 sed 출력

sed출력을 교체하면서 뭔가를 하려고 합니다 . 세부 사항은 다음과 같습니다. 출력의 경우 나머지 숫자의 공백 Date:080910 111411만 유지하고 필터링하고 싶습니다 . Date:XXXXXX일반적으로 s/Date:[0-9]{6}//g문제는 해결될 것입니다. 그렇죠? 그러나 Date:080910 111411출력은 curlAPI에서 검색하는 명령에서 나옵니다. 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/'

관련 정보