에코를 사용하지 않고 유닉스 변수의 값을 부분 문자열로 자르거나 자르는 방법이 있습니까?
예를 들어 날짜가 포함된 변수가 있습니다.
pDate=2020-06-22
연도와 월을 별도의 변수에 전달해야 합니다. 올해의 분기를 결정하기 위해 if else 문에서 이를 사용하겠습니다.
저는 스크립트를 사용하지 않습니다...실행 명령 단계인 Datastage에서 코딩합니다. 나는 다음 명령을 사용했습니다.
pDate=2020-06-22; pMonth= echo $pDate | cut -c6-7
따라서 DS 시퀀스 작업의 명령 실행 단계 중 명령 출력에 월 "06"이 표시되었습니다. 월을 변수로 사용하고 출력이 두 개 이상 있으면 작업이 실패하므로 명령 출력에 출력하지 않습니다.
답변1
이식 가능한 경우 쉘 매개변수 확장을 사용할 수 있습니다.
$ pDate=2020-06-22
$ year=${pDate%%-*}
$ yearmonth=${pDate%-*}
$ month=${yearmonth#*-}
$ echo $year
2020
$ echo $month
06
ksh를 사용하면 여기에서 문자열을 읽을 수 있습니다.
$ IFS="-" read year month day <<<"$pDate"
$ echo "$year .. $month .. $day"
2020 .. 06 .. 22