무회blog

유닉스/리눅스 전월말일자 참고 본문

IT

유닉스/리눅스 전월말일자 참고

최무회 2021. 10. 5. 00:43
#!/bin/sh

#target_day="20210822" # ${1} 첫번째 인자 받기
target_day=${1}
##01 지정일 선택하기 (변수담기)
echo $target_day

##02 원본파일: 문자열 붙히기(문자열+변수)
target_file="test_"$target_day".sh"
echo $target_file

##03 전월말일자 변수에 담기 (지정일일자를 변수 담기 ) ## 변수에 담기 (지정일 전월말일자)
## tet1=$(date "--date=$(date -d "20210810" +%Y%m01) -d -1day" +%Y%m%d)
last_dd=$(date "--date=$(date -d ${target_day} +%Y%m01) -d -1day" +%Y%m%d)
echo $last_dd

##04 전월말일자 파일 생성
change_file="test_"$last_dd".sh"
echo $change_file

##05 파일명 바꾸기
mv $target_file $change_file
date -d "20190501" +'%Y%m%d'

----------------------------------------------------
##(유닉스) 문자열에서 일자를 연산하여 전월말일자 구하기 

#전월말일자 구하기 (bash shell) 
date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d

# 자동화 전월말일자 구하기 
date -d "$(date +%Y-%m-01) -1 day" +%Y%m%d
----------------------------------------------------

# 금일 일자에서 1일 빼기 
date -d '1 day ago' '+%Y%m%d'

# 첫일자 구하기 
date -d "20210920" +%Y%m01

## 입력 받은 날짜 변수에 일 더하기
date "--date=$dt -d +${i}day" +%Y%m%d
date "--date="20210922" -d +${1}day" +%Y%m%d


## 입력 받은 날짜,시간 변수에 시간 빼기
`date -d "$dt $hh -2hour" +%Y%m%d%H`

## 입력 받은 날짜 변수에 일자 빼기
date "--date="20210901" -d -1day" +%Y%m%d
20210831


# 자동화 1일 빼기 
date -d "(date +%Y-%m-01) -1 day" +%Y%m%d

----------------------------------------------------

 

----------------------------------------------------

touch test_20211004.sh

vi -> i(편집모드) 

#!/bin/sh
# date -d "$(date +%Y-%m-01) -1 day" +%Y%m%d

date -d "$("20211004" +%Y-%m-01) -1 day" +%Y%m%d

esc -> (저장)wq

실행권한 주기 
chmod +x test_20211004.sh

----------------------------------------------------
touch test_20110325.sh


#전월말일자 구하기 (bash shell) 
date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d

mv test_20110325.sh test_$(date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d).sh

ls *.dat | awk -F "_" '{print "mv "$0" "$1"_"$2"_20190909_"$4""}' |sh 

ls *.dat | awk -F "_" '{print "mv "$0" "$1"_20210505"}' | sh 
mv "$0" "$1"_"$2"_20190909_"$4"
----------------------------------------------------

 




## 변수1 을 변수2로 이름 바꾸기 
#ls test_20210810.sh |awk -F "_" '{print "mv "$0" "$1"'_''20210822''.sh'"}'|sh
ls $target_file      |awk -F "_" '{print "mv "$0" "$1"'_''20210822''.sh'"}'|sh


# (파일명조회)| (파일명 변경) (파일 옵션) (구분자 옵션)"_" (변경)| (실제 변경)
ls test_20210808.sh |awk -F "_" '{print "mv "$0" "$1"_20210805.sh"}'|sh
ls test_20210806.sh |awk -F "_" '{print "mv "$0" "$1"'_20210804''.sh'"}'|sh

$ ls test_20210808.sh |awk -F "_" '{print "mv "$0" "$1"'_20210810''.sh'"}'|sh
ls test_20210808.sh |awk -F "_" '{print "mv "$0" "$1"'_20210810''.sh'"}'|sh
date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d
date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d
tet=`date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d`
tet1=$(date "--date=$(date -d "20211025" +%Y%m01) -d -1day" +%Y%m%d)

ls test_20210808.sh |awk -F "_" '{print "mv "$0" "$1"'_20210810''.sh'"}'|sh

 

참고자료 :  https://m.blog.naver.com/wideeyed/221524148361

 

[쉘프로그래밍] 인자받아 분기 처리하기

쉘 스크립트 이름 뒤에 입력한 인자를 받아 인자 값에 따라 다른 처리를 하는 쉘을 만들어 봅니다. 벤츠의 ...

blog.naver.com

 

Comments