[완료]솔라리스 문자열 자르기

artop0420의 이미지

쉘 스크립트 작업중인데요.

123456

이라는 문자열이 있으면 이거를 6만 출력을 하고자 합니다.

그러면 cut -c6 이라고 하면 가능하겠죠..

실제로 작업중에는 1앞에 0도 있고 -1도 있죠.. 그래서 단순하게 cut -c6만을 하기에는 무리가 있어보여서요

cut이 문자열 왼쪽에서부터 잘라서 온다고 가정한다면 오른쪽부터 잘라서 출력할수 있는 명령어가 있나요?

bushi의 이미지

rev 가 있다면

[bushi@rose src]$ A=123456
[bushi@rose src]$ echo ${A}|rev|cut -c1
6

bash 라면 외부유틸 필요없이
[bushi@rose src]$ A=123456
[bushi@rose src]$ echo ${A:${#A}-1:1}
6

OTL

jg의 이미지

정확한 조건을 잘 모르겠습니다만 마지막 글자만 따오는 것이라면
sed

echo 123456 | sed 's/^.\(.\)$/\1/'

정도가 될 것 같습니다.

perl

# sed 와 동일한 방법으로..
echo 123456 | perl -pa -e 's/^.*(.)$/\1/'
# 또는 정규 표현식이 와닿지 않는다면..
echo 123456 | perl -naF -e 'print @F[-2].$/'
# 위와 동일하지만 내부변수를 조금 더 사용한다면
echo 123456 | perl -paF -e '$_=@F[-2].$/'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

artop0420의 이미지

감사합니다.....
리눅스와 솔라리스 명령어 구조차이 때문인지 sed는 안되는군요. 지금 스크립트 책을 다시 보고 있는 중입니다만..ㅋㅋ
perl 문의 경우 맨 처음만 가능하군요.... perl도 다시 봐야겠습니다. 제눈에는 암호문 수준이군요 ..T.T

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

artop0420의 이미지

감사합니다.....
리눅스와 솔라리스 명령어 구조차이 때문인지 sed는 안되는군요. 지금 스크립트 책을 다시 보고 있는 중입니다만..ㅋㅋ
perl 문의 경우 맨 처음만 가능하군요.... perl도 다시 봐야겠습니다. 제눈에는 암호문 수준이군요 ..T.T

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

jg의 이미지

그렇군요.. 갑자기 솔라리스 머신이 갖고 싶어지는 순간이네요.
perl은 좀 의외네요. 특별히 버전을 타지 않는 구문으로 작성한 것이라..
언뜻 드는 생각은 쉘이 문자열을 처리하는 방식이 다른 것이 아닌가 생각합니다.
'' 안에 들어가는 내용이라던지 \ (이스케잎 시퀀스)라던지..

아무튼 화이팅입니다. =_=

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}