2017-11-18 8 views
0

다음을 수행하기 위해 Bash에서 몇 줄의 코드를 작성하는 방법을 생각해보십시오. Bash에서 기술을 익히고 명령 줄에서 더 작은 작업 디렉토리를 처리하는 방법을 배우려고합니다.날짜 범위를 기반으로 파일 집합 만들기

단계 :

  1. 은 시작 날짜와 종료 날짜를 지정합니다. 시작 날짜와 종료 날짜를 포함하여 모든 날짜를 '목록'에로드하십시오.

  2. 매번 이와 같이 파일을 생성하는 목록을 반복하십시오.

    2017-11-10.w 
    2017-11-11.w 
    2017-11-12.w 
    
+0

배쉬 날짜를 관리하기위한 위대한 없습니다. 나는 bash보다는 perl이나 다른 "고급"언어로 할 것이다. 내 2 센트. 그리고 무엇을 시도 했습니까? 어떤 연구입니까? – Nic3500

답변

1

는 그런 일 및 종료일이 지난 때까지 결과의 이름을 따서 명명 touch 파일 당 (초)을 추가 입력이 유닉스 타임 스탬프로 날짜 변환 할 수 있습니다 (날짜 형식이 필요) :

#!/bin/bash 

startstamp=$(date -d "$1" +'%s') 
endstamp=$(date -d "$2" +'%s') 

secs_per_day=$((24 * 3600)) 

for ((thedate = startstamp; thedate <= endstamp; thedate += secs_per_day)); do 
    touch "$(date -d "@$thedate" '+%F.w')" 
done 

%s 형식 문자열 (GNU 확장)은 날짜가 일에 있음을 나타냅니다 -d 옵션에 대한 인수의 유닉스 시대 이후의 초 수, @을 인쇄 형식으로. %F%Y-%m-%d의 줄임말로, YYYY-MM-DD로 변환됩니다.

사용 예제 :

$ ./dates 2017-11-10 2017-11-15 
$ ls -1 
2017-11-10.w 
2017-11-11.w 
2017-11-12.w 
2017-11-13.w 
2017-11-14.w 
2017-11-15.w 
dates