쉘 프로그래밍에서 aaa-bbb-cccc-ddd eee-ffff-ggg
등의 입력을 받아서
aaa-bbb-cccc eee-fff
등 구분자 중에서 맨 마지막에 붙은 부분만 잘라낸 앞부분을 얻고 싶습니다. 쉘프로그래밍을 잘 모르다 보니 무엇을 어찌할지를 모르겠네요. 혹시나 방법을 아시는 분 계시면 부탁드립니다.
그럼..
ruby를 쓸 수 있다면 아주 간단합니다.
$ echo "a-b-c" | ruby -e 'puts $<.read.split("-")[0...-1].join("-")' a-b
풀이하자면, 입력스트림($<, $stdin, STDIN)을 읽어서(read) '-'로 쪼개고(split), 마지막 요소만 뺀 배열([0...-1])을 '-'로 다시 합친(join) 것입니다.
----http://nohmad.tumblr.com/
bash라면
yui@Alpha:~/tmp [1014 0] $ cat test.sh kaka="aaa-bbb-ccc" echo ${kaka%-*} yui@Alpha:~/tmp [1015 0] $ ./test.sh aaa-bbb
@ bash를 쓰시려나 모르겠네요. ^^;;
Yet Another Bash Script. :)
#!/bin/sh while read line; do echo "$line" | sed -e 's/-[^-]*$//g' done
$ ./tmp/sh<RET> aaa-bbb-ccc-ddd<RET> aaa-bbb-ccc eee-fff-ggg<RET> eee-fff $ _
$ cat tmp.txt | tmp.sh <<EOF <RET> > aaa-bbb-ccc-ddd<RET> > eee-fff-ggg<RET> EOF<RET> aaa-bbb-ccc eee-fff $ _
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
#!/bin/sh
for KK in `cat source.txt` do echo ${KK%-*} done
와 같이 하면 되겠고.. 파이프로 데이타를 받으려면..
[root@nalle bin]# cat a.sh #!/bin/sh
for KK in `cat -` do echo ${KK%-*} done
와 같이 한후
cat source.txt | a.sh
와 같이 하면 될듯...
=== 건달의 경지를 꿈꾸며 ===
Python
$ cat > ./test.py #!/usr/bin/python import string import sys for line in sys.stdin.readlines(): print string.join(string.split(line,"-")[0:-1],"-")
$ cat source.txt | ./test.py
-------------------- 절취선 -- 행복하세요:)
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ruby를 쓸 수 있다면 아주 간단합니다.[code:1]$ ech
ruby를 쓸 수 있다면 아주 간단합니다.
풀이하자면, 입력스트림($<, $stdin, STDIN)을 읽어서(read) '-'로 쪼개고(split), 마지막 요소만 뺀 배열([0...-1])을 '-'로 다시 합친(join) 것입니다.
----
http://nohmad.tumblr.com/
Re: 쉘 프로그래밍 중에서 구분자로 문자를 잘라내기
bash라면
@ bash를 쓰시려나 모르겠네요. ^^;;
Yet Another Bash Script. :)[code:1]#
Yet Another Bash Script. :)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
쉘에서는 yui 님께 제일 간단한듯....
#!/bin/sh
for KK in `cat source.txt`
do
echo ${KK%-*}
done
와 같이 하면 되겠고.. 파이프로 데이타를 받으려면..
[root@nalle bin]# cat a.sh
#!/bin/sh
for KK in `cat -`
do
echo ${KK%-*}
done
와 같이 한후
cat source.txt | a.sh
와 같이 하면 될듯...
=== 건달의 경지를 꿈꾸며 ===
python으로도
Python
-------------------- 절취선 --
행복하세요:)
댓글 달기