날짜를 현재 날짜로 바꾸기

날짜를 현재 날짜로 바꾸기

abc.fil. 형식의 내용을 가진 파일이 있습니다 . . 형식으로 출력되도록 파일을 yyyymmdd.xyz.doc원합니다 . 누구든지 이 문제를 해결하도록 도와줄 수 있습니까?catabc.fil20150127.xyz.doc

샘플 파일:

$ cat abc.fil
o/p: yyyymmdd.xyz.doc
yyyymmdd.mno.dat
abc.txt

예상 출력: yyyymmdd현재 날짜가 동일한 순서로 표시되기를 원합니다.

답변1

당신이 사용할 수있는 sed:

sed "s/yyyymmdd/$(date '+%Y%m%d')/g" abc.fil

그러면 문자열이 yyyymmdd필요에 따라 형식이 지정된 현재 날짜로 대체됩니다.

편집하다:

yyyymmdd날짜 형식만 바꾸려면 다음 명령을 사용하십시오(GNU 가정 ) sed.

sed -r "s/[12][0-9]{3}[01][0-9][0-3][0-9]/$(date '+%Y%m%d')/g" abc.fil

긴 정규식 패턴의 의미는 다음과 같습니다. 첫 번째 숫자는 1 또는 2( [12])일 수 있고 다음 세 숫자는 [0-9]0에서 9( ) 사이의 숫자(연도)일 수 있습니다. 이제 월의 경우 첫 번째 숫자는 0 또는 1이 될 수 있고, 두 번째 숫자는 0에서 9까지의 숫자가 될 수 있습니다( [01][0-9]). 결국 그날과 똑같았습니다.

답변2

> today=$(date +%Y%m%d)
> sed "s/yyyymmdd/${today}/g" abc.fil
o/p: 20150127.xyz.doc
20150127.mno.dat
abc.txt

답변3

노력하다

cat abc.fil | sed s/yyyymmdd/`date +%Y%m%d`/

관련 정보