![날짜를 현재 날짜로 바꾸기](https://linux55.com/image/60851/%EB%82%A0%EC%A7%9C%EB%A5%BC%20%ED%98%84%EC%9E%AC%20%EB%82%A0%EC%A7%9C%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
abc.fil
. 형식의 내용을 가진 파일이 있습니다 . . 형식으로 출력되도록 파일을 yyyymmdd.xyz.doc
원합니다 . 누구든지 이 문제를 해결하도록 도와줄 수 있습니까?cat
abc.fil
20150127.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`/