쉘 스크립트를 사용하여 로그 파일에 파일 이름 축적

쉘 스크립트를 사용하여 로그 파일에 파일 이름 축적

내 파일 이름은

ABC_-_123321.20140505_-_161500.CSV
ABC_-_654145.20140506_-_135020.CSV
String_-_SerialID.Date_-_Time.CSV

시작 날짜, 시작 시간, 종료 날짜그리고 시간의 최대입력으로 주어졌습니다.

어떻게 다 얻을 수 있어?파일 이름(또는 상대 경로)가날짜그리고시간주어진 사이날짜그리고시간범위를 지정하고 쉘 스크립트를 사용하여 로그 파일에 기록하시겠습니까?

날짜그리고시간마지막으로 액세스하거나 수정한 날짜/시간 스탬프가 아니며 파일 이름에 공백이 없습니다.

나는 선택할 수 있다날짜그리고시간예를 들어 필드 사이에 구분 기호 없이 개별적으로 입력하거나
20140706
165030
입력을 다음과 같이 처리할 수 있습니다.
20140706165030

답변1

작업을 수행하는 알고리즘:

각 파일에 대해 날짜를 가져오고 차이를 주어진 날짜와 동일하게 만듭니다. 날짜 차이는 아래 링크를 참조하세요.

협회

솔라리스(GNU 날짜가 없는 유닉스)의 경우 다음을 사용하십시오. 협회

시간을 현명하게 사용하려면 날짜 루프 내에서 시간 루프를 사용하십시오. 시차를 얻으려면 다음 코드를 사용할 수 있습니다

      time1=14:30
      time2=$( date +%H:%M ) # 16:00
      diff=$(  echo "$time2 - $time1"  | sed 's%:%+(1/60)*%g' | bc -l )
      echo $diff hours
      # outputs 1.5 hours

여기에서 seda를 :1/60으로 변환하는 공식으로 바꾸세요. 그런 다음 bc(클릭협회더 많은 정보를 알고 싶다면).

참고: DIFFERENCE가 +ve인 경우 로그/콘텐츠를 지정된 파일에 넣을 수 있습니다.

관련 정보