sed /unix 명령을 사용하여 (yyyymmdd) 사이의 날짜를 바꿉니다.

sed /unix 명령을 사용하여 (yyyymmdd) 사이의 날짜를 바꿉니다.

아래와 같이 세 개의 .dat 파일이 있다고 가정해 보겠습니다.

Psdm_123_20200221.dat
Psdm_20200221.dat
Psdm_acc_20200221_12345667.dat

산출

Psdm_123*.dat
Psdm_*.dat
Psdm_acc_*.dat

답변1

다음 sed명령으로 작업을 수행해야 합니다.

sed 's/20[0-9]\{2\}\(0[1-9]\|1[012]\)\([012][0-9]\|3[01]\)[^.]*/*/'

또는 옵션을 sed이해 했다면 대부분의 백슬래시를 생략할 수 있습니다.-r-E

sed -r 's/20[0-9]{2}(0[1-9]|1[012])([012][0-9]|3[01])[^.]*/*/'

이는 일부 온전성 검사(2000년에서 2099년 사이의 연도, 01 - 12 범위의 월, 01 - 31 범위의 일)와 함께 "YYYYMMDD" 패턴을 찾아서 교체합니다..날짜 뒤의 파일 이름에 리터럴이 하나만 있는 경우 그 이후의 모든 항목(파일 확장자를 포함하지 않음). 이는 교체할 표현식에서 "0번 이상을 제외한 모든 것"( )을 허용하여 .수행 됩니다.[^.]*

관련 정보