에코를 사용하지 않고 유닉스 변수의 값을 부분 문자열로 자르거나 자르는 방법이 있습니까?

에코를 사용하지 않고 유닉스 변수의 값을 부분 문자열로 자르거나 자르는 방법이 있습니까?

에코를 사용하지 않고 유닉스 변수의 값을 부분 문자열로 자르거나 자르는 방법이 있습니까?

예를 들어 날짜가 포함된 변수가 있습니다.

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

관련 정보