saphire ã·ã§ã« 1.ææ³ 1.0.0 ã³ãã³ã ã³ãã³ãå å¼æ°1 å¼æ°2 ... ãä¸ã¤ã®ã³ãã³ããå®è¡ãã¾ããå¼æ°ã®æ°ã¯ä»»æã§ãã ã³ãã³ãã¨å¼æ°ã®åºåãã«ã¯ã¹ãã¼ã¹ã¨ã¿ãã使ãã¾ãã å®è¡ããã³ãã³ãã¯ãã£ã¹ã¯ã«ä¿åãããããã°ã©ã ã使ç¨ã§ãã¾ããã³ãã³ããæ¤ç´¢ãããã¹ã«ã¯ç°å¢å¤æ°PATHã使ç¨ããã¾ããä¾ãã°PATHã«/bin:/usr/binãå ¥ã£ã¦ããã°ï¼:ãPATHã®åºåãã§ããä¾ãã°print /home/hoge/bin:/home/hoge2/bin | export PATHãªã©ã¨è¨å®ãã¾ãã) >ls -al ã¨å®è¡ããã¨/bin/lsã¨/usr/bin/lsãæ¤ç´¢ããå ã«æ¤ç´¢ããã/bin/lsãå®è¡ããã¾ãã å¼æ°ã«ã¯æ £ç¿çã«-ã§å§ã¾ããªãã·ã§ã³, --ã§å§ã¾ããã³ã°ãªãã·ã§ã³ãããã¾ãããã³ã°ãªãã·ã§ã³ã¯-lã¨ãã£ãä¸æåã®ãªãã·ã§ã³ãè¦ãã«ããã¨ããçç±ããè¦ãããã--listãªã©ã¨åããããããªãã·ã§ã³åã§ä½¿ããããã«ãªã£ããã®ã§ãã å¼æ°ã®æ¸ãæ¹ã¨ãã¦ã¯ãlsãªã©ä¸è¬çãªå¤é¨ã³ãã³ãã§ã¯-a -lã¨äºã¤ãªãã·ã§ã³ãã¤ãããã¨ã¨-alã¨ä¸ã¤ã®ãªãã·ã§ã³ãã¤ãããã¨ã¯åãæå³ã¨ãã¦å¦çããã¾ãããã æ®å¿µãªãã¨ã«saphireã®çµã¿è¾¼ã¿ã³ãã³ãã§ã¯-alã¯-aã¨-lã¨ã¯è¦ãªããã¾ããã-a -lã¨åãã¦æ¸ãã¦ãã ãããã¾ããªãã·ã§ã³ã«å¼æ°ãåãã³ãã³ãã§ã¯ä¸è¬çã«-T 4ã¨æ¸ããã¨ã¨-T4ã¨æ¸ããã¨ã¯åãã§ãããsaphireã®çµã¿è¾¼ã¿ã³ãã³ãã§ã¯-T 4ã¨æ¸ãã¦ãã ããã 1.0.1 æ¨æºå ¥åãæ¨æºåºåãã¨ã©ã¼åºåã¨ãªãã¤ã¬ã¯ã ä¸ã¤ã®ã³ãã³ãã«ã¯å ¥åå ãåºåå ãã¨ã©ã¼åºåå ãããã¾ããä¾ãã°vimã¨ããæç« ç·¨éã³ãã³ããå®è¡ãã¦ããã¨ãã¯ãå ¥åå ã¯ãã¼ãã¼ããåºåå ã¯ç»é¢ãã¨ã©ã¼åºåå ãç»é¢ã§ããã¨ã©ã¼åºåã¨ããã®ã¯ã³ãã³ãã«ä¸å ·åããã£ãå ´åã«ãããç¥ãããç¹å¥ãªã¡ãã»ã¼ã¸ã表示ããå ´æã®ãã¨ã§ããUNIXã§ã¯ãã®å ¥åå ãåºåå ãè¨å®ã«ãã£ã¦ãã¡ã¤ã«ã«å¤ãããã¨ãã§ãã¾ããããããªãã¤ã¬ã¯ãã§ããsaphireã«ã¯ä»¥ä¸ã®ãªãã¤ã¬ã¯ããããã¾ãã > ãã¡ã¤ã«å åºåããã¡ã¤ã«ã«æ¸ãè¾¼ã %2> ãã¡ã¤ã«å ã¨ã©ã¼åºåããã¡ã¤ã«ã«æ¸ãè¾¼ã >> ãã¡ã¤ã«å åºåããã¡ã¤ã«ã«è¿½è¨ %2>> ãã¡ã¤ã«å ã¨ã©ã¼åºåããã¡ã¤ã«ã«è¿½è¨ < ãã¡ã¤ã«å ãã¡ã¤ã«ãå ¥åã¨ãã¦ã³ãã³ãã«æ¸¡ã %> ã¨ã©ã¼åºåãæ¨æºåºåã¨ãã¦æ±ãï¼ä¸¡æ¹æ¨æºåºåã«æµã) %>> ä¾ puts ãã¡ã¤ã«ã«æ¸ãè¾¼ãæåå > file1 ã¨ããã¨file1ã«ããã¡ã¤ã«ã«æ¸ãè¾¼ãæååãã¨ããæååãæ¸ãè¾¼ã¾ãã¾ã 1.0.2 ï¼æ ã³ãã³ã1 å¼æ°... ãªãã¤ã¬ã¯ã... | ã³ãã³ã2 å¼æ°... ãªãã¤ã¬ã¯ã... ã¨ã³ãã³ãã | ã§ã¤ãªãããã®ãä¸æã§ããã³ãã³ã1ã®åºåå ãã³ãã³ã2ã®å ¥åå ã¨ãã¦æ±ããã¦ãã¾ãããã®ã³ãã³ã2ã®åºåå ã次ã®ã³ãã³ãã®å ¥åå ã¨ãã¦æ±ãããããã¨æå¾ã®ã³ãã³ãã¾ã§å®è¡ããã°æå¾ã®ã³ãã³ããç»é¢ã«åºåãã¾ãã ããããã¤ãã§ã¤ãªãã¨ããã¾ãã ææ«ã«ã¯ä»¥ä¸ã®åºåãã使ãã¾ãã ; æ®éã®æã®åºåã æ¹è¡ æ®éã®æã®åºåã && 次ã®æã¯æã®ãªã¿ã¼ã³ã³ã¼ãã0(å®è¡æåã表ã)ã§ãªãã¨å®è¡ããã¾ãã || 次ã®æã¯æã®ãªã¿ã¼ã³ã³ã¼ãã0以å¤(å®è¡å¤±æ)ã§ãªãã¨å®è¡ããã¾ãã & æãããã¯ã°ã©ã³ãå®è¡ãã¾ã ã¾ãã³ãã³ãç½®æã®å±éã¯æãåä½ã§è¡ããã¾ãã saphireã§ã¯çµã¿è¾¼ã¿ã³ãã³ãããã£ã«ã¿ã¼ã®æ§ã«ä½¿ãã¾ããã¾ãã¦ã¼ã¶ã¼ãä½ã£ãé¢æ°ããã£ã«ã¿ã¼ã¨ãã¦ä½¿ãã¾ããï¼ãã¤ãã®éä¸ã§å é¨ã³ãã³ããã¦ã¼ã¶ã¼ã³ãã³ãã使ãã) 1.0.3 ããã¯ã°ã©ã¦ã³ãå¦ç æã¯&ãã¤ããã¨ããã¯ã°ã©ã³ãå®è¡ã¨ãªãã¾ãããã ãçµã¿è¾¼ã¿ã³ãã³ããã¦ã¼ã¶ã¼ã³ãã³ãã®å®è¡ã¯ä¸¦åçã«è¡ããã¨ãã§ãã¾ãããæå¹ãªã®ã¯å¤é¨ã³ãã³ãã ãã§ããä¾ãã°defã¯ã¦ã¼ã¶ã¼ã³ãã³ããå®ç¾©ããã³ãã³ãã§ãã > def fun { sleep 10 } > fun & ã¯ããã¯ã°ã©ã³ãå®è¡ã§ãã¾ããã > def fun { sleep 10 & } > fun ã¯å¯è½ã§ãã jobsã§ããã¯ã°ã©ã¦ã³ããå®è¡ä¸ãµã¹ãã³ã(CTRL-Z)ããããã»ã¹ã°ã«ã¼ãã®ä¸è¦§ãè¦ãã¾ãã fg jobsã®ä¸è¦§ã®çªå· ã§ãã®ããã»ã¹ã°ã«ã¼ãããã©ã¢ã°ã©ã³ãã«æã£ã¦ãããã¨ãã§ãã¾ãã bg jobsã®ä¸è¦§ã®çªå· ã§ãã®ããã»ã¹ã°ã«ã¼ãã«SIGCONTãéãã¾ããã¤ã¾ãåæ¢ããããã»ã¹ãåéã§ãã¾ããåæ¢ããå ´é¢ã¯ä¾ãã°cpã§ã³ãã¼ä¸ã«CTRL-Zããå ´åã§ãããã®å ´åbgããã¨ããã¯ã°ã©ã¦ã³ãã§ã³ãã¼ã®ç¶ãããã£ã¦ããã¾ãã ä¸è¬çãªã·ã§ã«ã¨éãCTRL-Zã§ãµã¹ãã³ãããããããã¯ã°ã©ã¦ã³ãã§å®è¡ããããã§ããã®ã¯ãã¤ãã®æå¾ãå¤é¨ã³ãã³ãã®å ´åã®ã¿ã§ããsaphireã§ã¯ãã¤ãã®éä¸ã§ã¦ã¼ã¶ã¼ã³ãã³ããããããå é¨ã³ãã³ãããããã¨ãã§ãã代ããã«ãã®ãããªå¶éãããã¾ãã 1.1 ã¯ã©ã¼ã ã¯ã©ã¼ãã¨ã¯å¼ç¨ã表ãå¼ç¨ç¬¦ã§æ¬ããªã©ã¨ãã¦ä»ã®æã¨ãã¦è§£éãããªãããã«ããããã®ãã®ã§ãã使ã£ã¦ããç¹å¥ãªè¨å·ãåãªãæååã¨ãã¦å¦çãããã¨ãã«ä½¿ãã¾ãã saphireã«ã¯ä¸æåã®ã¯ã©ã¼ãã¨ã·ã³ã°ã«ã¯ã©ã¼ãã¨ããã«ã¯ã©ã¼ããããã¾ããä¸æåã®ã¯ã©ã¼ãã¯\ã§ããã®å¾ã«æ¥ãè¨å·ãæåã¯saphireã§ç¹å¥ãªæå³ã失ãã¾ããä¾ãã°è¡æ«ã表ã;ã¯ãã®ã¾ã¾ã§ã¯è¡æ«ã¨ãã¦saphireãå¦çãã¾ããã\;ã¨ããã¨;ã¯ãã®æå³ã失ãæååã¨ãã¦å¦çãã¾ããã¯ã©ã¼ãã¯æä»çã§ããå¥ã®ã¯ã©ã¼ãä¸ã¯ã¯ã©ã¼ãã¯æå³ã失ãã¾ãã > puts ä¸ã¤ç®ã®æååã表示; puts ï¼ã¤ç®ã®æååã表示 ä¸ã¤ç®ã®æååã表示 ï¼ã¤ç®ã®æååã表示 > puts ä¸ã¤ç®ã®æååã表示\; puts ï¼ã¤ç®ã®æååã表示 ä¸ã¤ç®ã®æååã表示; puts ï¼ã¤ç®ã®æååã表示 \èªèº«ã使ãããå ´åã¯\\ã使ãã¾ãã > puts ããã\\æåã§ã ããã\æåã§ã ã·ã³ã°ã«ã¯ã©ã¼ãã¯ä¸ã¤ç®ã®'ããï¼ã¤ç®ã®'ã¾ã§ãæååã¨ãã¦æ±ãã¾ãã > puts 'ä¸ã¤ç®ã®æåå; puts äºã¤ç®ã®æåå' ä¸ã¤ç®ã®æåå; puts äºã¤ç®ã®æåå ããã«ã¯ã©ã¼ããåãã§ãã > puts "ä¸ã¤ç®ã®æåå; puts äºã¤ç®ã®æåå" ä¸ã¤ç®ã®æåå; puts äºã¤ç®ã®æåå > puts "ã·ã£ã¢ \赤ãå½æ\ ã¢ãºããã«" ã·ã£ã¢ \赤ãå½æ\ ã¢ãºããã« ã·ã³ã°ã«ã¯ã©ã¼ããããã«ã¯ã©ã¼ãã®éãã¯ããã«ã¯ã©ã¼ãã¯ä¸ã§ã³ãã³ãå±éãå±éããç¹ã§ããã³ãã³ãå±éã¯ã³ãã³ãã®å®è¡çµæãã³ãã³ãã©ã¤ã³ã«è²¼ãä»ãããã¨ãã§ãã¾ãã > print 赤ãå½æ | global futatuna > puts "ã·ã£ã¢ $(global futatuna) ã¢ãºããã«" ã·ã£ã¢ 赤ãå½æ ã¢ãºããã« > print 赤ãå½æ | global futatuna > puts 'ã·ã£ã¢ $(global futatuna) ã¢ãºããã«' ã·ã£ã¢ $(global futatuna) ã¢ãºããã« ã¯ã©ã¼ãã¨ã¯ã©ã¼ãã®çµã¿åããã§ãããå ¨ã¦ã®ã¯ã©ã¼ãã¯ä»ã®ã¯ã©ã¼ãå ã§ã¯æå³ã失ãã¾ãã > puts "\aaa" \aaa > puts '\aaa' \aaa > puts "'" ' > puts '"' " > puts \" " > puts \' ' 1.2 ç¹æ®æåå saphireã§ã¯ã©ã¤ã³ãã£ã¼ã«ãããã£ãªãã¸ãªã¿ã¼ã³, ã¿ããªã©ãåãè¾¼ãã¾ãã \n ã©ã¤ã³ãã£ã¼ã«ãã¨ãã¦æ±ã \r ãã£ãªãã¸ãªã¿ã¼ã³ã¨ãã¦æ±ã \t ã¿ãã¨ãã¦æ±ã \a ãã«ã¨ãã¦æ±ã printã¯æååã表示ããã³ãã³ãã§ããputsã¨éãæå¾ã«æ¹è¡ãã¾ããã > print åãã¾ãã¦\nããã«ã¡ã¯\n åãã¾ã㦠ããã«ã¡ã¯ > print åãã¾ãã¦\nããã«ã¡ã¯\n åãã¾ã㦠ããã«ã¡ã¯ > print åãã¾ãã¦\\nããã«ã¡ã¯\\n åãã¾ãã¦\nããã«ã¡ã¯\n 1.2.5 空æå '' "" ã¯ç©ºã®æååãå¼æ°ã«è¿½å ããã¾ãã > puts "aaaa.c" | sub '\.' '' aaaac 1.3.1 å¤æ° saphireã®å¤æ°ã«ã¯ 1.ãã¼ã«ã«å¤æ° 2.ã°ãã¼ãã«å¤æ° 3.ç°å¢å¤æ° 4.é å 5.ããã·ã¥ ã®ï¼ã¤ãããã¾ãã ãã¼ã«ã«å¤æ°ãã°ãã¼ãã«å¤æ°ãç°å¢å¤æ°ã¯ããã¹ãä¸è¡ãæ ¼ç´ãã¾ãã > ls / | var a # ãã¼ã«ã«å¤æ°aã«ls /ã®åºåããæåã®ä¸è¡ãæ ¼ç´ > ls / | global a # ã°ãã¼ãã«å¤æ°aã«ls /ã®åºåããæåã®ä¸è¡ãæ ¼ç´ > ls / | export a # ç°å¢å¤æ°aã«ls /ã®åºåããæåã®ä¸è¡ãæ ¼ç´ > ls / | global a b # ls /ã®åºåããã°ãã¼ãã«å¤æ°aã«ä¸è¡ç® bã«äºè¡ç®ãæ ¼ç´ æ ¼ç´ããããã¹ãã¯var å¤æ°åãªã©ã¨ããã¨åãåºãã¾ã > global a bin > global a b # å¤æ°åäºã¤æ¸ãã¨ä¸¡æ¹ã®å¤ãåºå bin etc > global a b | global b a # ã°ãã¼ãã«å¤æ°aã¨bã§æ ¼ç´ãããã¼ã¿ã®äº¤æ > print a | global -p a | global b # -pã§ä»£å ¥ã¨åºåãåæã«è¡ããã°ãã¼ãã«å¤æ°aã¨bã«ãã¼ã¿(a)ãæ ¼ç´ é åã¯ããã¹ãå ¨ä½ãæ ¼ç´ãã¾ãã > ls / | ary a # é åaã«ls /ã®åºåå ¨ä½ãæ ¼ç´ > ls / | ary_add a # é åaã«è¿½è¨ æ ¼ç´ããããã¹ãã¯ary å¤æ°åã¨ããã¨åãåºãã¾ã > ary a bin var .... ã¾ãã¤ã³ããã¯ã¹ã使ã£ã¦ > ary a 0 bin > ary a 0 1 bin var ã¨æ ¼ç´ãã¦ããé çª(ã¤ã³ããã¯ã¹)ã®æ°å¤ã使ã£ã¦ãã¼ã¿ãåãåºããã¨ãã§ãã¾ããã¤ã³ããã¯ã¹ã¯ï¼ããå°ããå ´åæå¾ããæ°ãã¾ãã-1ã§æå¾ã®è¡ã-2ã§æå¾ããï¼çªç®ã®è¡ã§ãã è¤æ°ã®ã¤ã³ããã¯ã¹ã§ãã¼ã¿ãã¨ãããå ´åã¯linesã使ãã¾ã > ary a | lines 0 0 0 1 bin bin bin etc ç¯å²æå®ã§ã¨ãããå ´å㯠> ary a | lines 0..1 bin etc ã§ãã é åã«ãã¼ã¿ã追è¨ããã¨ãã¯ary_addã使ãã¾ã > ls | ary a; ls | ary_add a # é åaã«lsã®åºåï¼ã¤åãå ¥ã ããã·ã¥ã¯ããã¹ãã®å¶æ°è¡ããã¼ã¨ãã¦æ ¼ç´ãã¦å¥æ°è¡ãã¢ã¤ãã ã¨ãã¦æ ¼ç´ãã¾ãããã¼ã使ã£ã¦ã¢ã¤ãã ãåãåºããã¨ãã§ãã¾ããsplitã¯ç©ºç½ã§å解ãã¦é å(è¦ç´ ãæ¹è¡ã§åºåãããããã¹ã)ã«ããã³ãã³ãã§ããsaphireã§ã¯è¤æ°è¡ã®ããã¹ãã¯é åã¨ãã¦èãã¾ãã > split "key1 item1 key2 item2" key1 item1 key2 item2 > split "key1 item1 key2 item2" | hash a > hash a key1 item1 > hahs a key2 item2 > hash a key1 key2 item1 item2 ããã·ã¥ã«ãã¼ã¿ã追è¨ããã¨ãã¯hash_addã使ãã¾ãã > split "key1 item1 key2 item2" | hash a > split "key3 item3" | hash_add a > hash a key1 key2 item1 item2 > hash a key3 item3 hash å¤æ°åã¨ããã¨æ ¼ç´ããããã¼ã¿ãå ¨ã¦åãåºãã¾ã > hash a key2 item2 key3 item3 key1 # é çªã¯æ ¼ç´ããé ã¨ã¯éããªã item1 ããã¨linesã使ã£ã¦ãã¼ã®ã¿ãã¢ã¤ãã ã®ã¿ãåãåºããã¨ãã§ãã¾ã > hash a | lines \*2 key1 key2 key3 > hash a | lines \*2+1 item1 item2 item3 ã°ãã¼ãã«å¤æ°ãããã·ã¥ãé åã¯showã³ãã³ãã§å®ç¾©ç¶æ³ãè¦ããã¨ãã§ãã¾ãã ãã¼ã«ã«å¤æ°ã¯ã¹ã¿ãã¯ãã¬ã¼ã ã使ã£ãå¤æ°ã§ 1. é¢æ°ãå¼ã°ããã¨ã 2. ã¹ã¯ãªãããloadãããã¨ã 3. ã¯ã©ã¹ãå¼ã°ããã¨ã ã«ã¹ã¿ãã¯ãã¬ã¼ã ãæ°ãã«ä½ããããã®å¾ã«ä½ã£ããã¼ã«ã«å¤æ°ã¯ 1. é¢æ°ãçµããã¨ã 2. loadãããã¹ã¯ãªãããçµããã¨ã 3. ã¯ã©ã¹ã®å®è¡ãçµããã¨ã ã«èªåçã«æ¶ãã¾ãã > vim a.sa def fun { print a | var a var a | pomch # é¢æ°ã®ä¸ã§ã¯aã¯ä½¿ãã } fun var a | pomch # var a ã®å¯¿å½ã¯funã®ãªãã ããªã®ã§aã¯ç©ºãåºåãããããã¼ã«ã«å¤æ°ã¯å®ç¾©ããã¦ç¡ãå ´å空ãåæå¤ã¨ãã¦ä»£å ¥ãã¦ãããã®å¤ãåºåãã¾ãã-nãªãã·ã§ã³ãã¤ããã°ç©ºã®å ´åã¯0ãåºåãã¦åæå¤ã0ã¨ãã¾ãã ã¾ãã³ãã³ãã©ã¤ã³ã§æ°ãã«ã³ãã³ããå ¥åããã¨ãã«ã¹ã¿ãã¯ãã¬ã¼ã ã¯å ¨ã¦åæåããã¾ãã > print a | var a # a ã®å¯¿å½ã¯ãã®ã³ãã³ãã©ã¤ã³ã®ä¸ã§ã ã > var a | pomch # aã¯ç©ºãªã®ã§ä½ãåºåãããªã ã¤ã¾ããã¼ã«ã«å¤æ°ã¯ã¯ã³ã©ã¤ãã¼ã®ä¸ã§ã ãæå¹ã§ãã ããã·ã¥ãé åãã°ãã¼ãã«å¤æ°ã¯ sweep å¤æ°å å¤æ°åããã # æå®ãããååãæã¤å¤æ°ãæ¶ããã sweep # å ¨é¨ã®ããã·ã¥ãé åãã°ãã¼ãã«å¤æ°ãæ¶ããã¾ãã ã§æ¶ãããã¾ã§å¯¿å½ãããã¾ãã > ls / | global a # binãã°ãã¼ãã«å¤æ°aã«æ ¼ç´ > global a | pomch bin > sweep a > global a | pomch # æ¶å»ãããã®ã§ç©ºãåºåããã ããã·ã¥ãé åããã¤ã³ã¿ã¼ããã¼ã«ã«å¤æ°ã¨ãã¦ä½¿ãããå ´åã¯-lãªãã·ã§ã³ã使ã£ã¦ãã ããã ç°å¢å¤æ°ã¯ sweepã§æ¶ããã¨ãã§ãã¾ããã ã¾ãsaphireããèµ·åããããã»ã¹ã§ãçãã¦ãã¾ãã ã¢ããªã±ã¼ã·ã§ã³ã®è¨å®ã¨ãã¦ç°å¢å¤æ°ã¯ãã使ããã¾ãã ãã¼ã«ã«å¤æ°ã¯åæåããã«ä½¿ããã¨ãã§ãã¾ãã åæåããªãå ´å空ã®æååãåºåããã¾ãã-nãªãã·ã§ã³ãã¤ããã¨0㧠åæåããã¾ãã > var a | add aaa | var a; var a | pomch aaa > var -n a | + 3 | var a; var a | pomch 3 ãã¨ãã¼ã«ã«å¤æ°ã¯ ++ -- ã¨ããã³ãã³ãã§+1, -1ãããã¨ãã§ãã¾ãã ãã®å ´åãåæåããå¿ è¦ãããã¾ããã > ++ a; var a | pomch 1 1.3.5 ãªã¿ã¼ã³ã³ã¼ã(çµäºã³ã¼ã) ã³ãã³ããå®è¡ãããããã®ãªã¿ã¼ã³ã³ã¼ããã°ãã¼ãã«å¤æ°RCODEã«å ¥ã£ã¦ãã¾ãã >true; global RCODE | pomch 0 >false; global RCODE | pomch 1 ãªã¿ã¼ã³ã³ã¼ãã«ã¯ã³ãã³ãå®è¡ä¸ã«ã¨ã©ã¼ããã£ãå ´åã«0以å¤ã®æ°å¤ãå ¥åããã¾ãã ! æ(ã³ãã³ã å¼æ° ... | ã³ãã³ã ....) ã³ãã³ããå®è¡ãã¦ãªã¿ã¼ã³ã³ã¼ããå転ããã æã®ãªã¿ã¼ã³ã³ã¼ãã0以å¤ãªããªã0ã«0ãªã1ã«ãã¾ãã > ! puts aaa\nbbb | match -q a; global RCODE | pomch 1 1.4 ã³ãã³ãå±é ã³ãã³ãå±éã¯ã³ãã³ãã®åºåãã³ãã³ãã©ã¤ã³ãæã«è²¼ãä»ãããã®ã§ãã > ls -al $(print main.c) 㯠> ls -al main.c ãå®è¡ããã®ã¨åãã§ãã ã³ãã³ãå±éã«ã¯å ¨é¨ã§ï¼ç¨®é¡ããã¾ã 1. $(ã³ãã³ã) 2. $$(ã³ãã³ã) 3. @(ã³ãã³ã) 4. @@(ã³ãã³ã) 1ã¤ç®ã®$(ã³ãã³ã)ã¯ã³ãã³ãã®å®è¡çµæãsaphireã§ä½¿ç¨ãããæåãã¯ã©ã¼ããã¦è²¼ãä»ãã¾ãã > ls -al $(print "*.c") 㯠> ls -al \*.c ã¨ãªãã¾ãã > ls -al $(print "main.c saphire.sa") 㯠> ls -al main.c\ saphire.sa ã¨ãªãã¾ãã 2ã¤ç®ã®$$(ã³ãã³ã)ã¯ã³ãã³ãçµæããã®ã¾ã¾è²¼ãä»ãã¾ãã > ls -al $$(print "*.c") 㯠> ls -al *.c ã¨ãªãã¾ãã > ls -al $$(print "main.c saphire.sa") 㯠> ls -al main.c saphire.sa ã¨ãªãã¾ãã 3ã¤ç®ã®@(ã³ãã³ã)ã¯ã³ãã³ãçµæãä¸ã¤ã®å¼æ°ã¨ãªãã¾ãã > ls -al @(print "main.c")saphire.sa 㯠ls -alã«main.cã¨ããå¼æ°ã¨saphire.saã¨ããå¼æ°ããããã¨ã«ãªãã¾ãã @(ã³ãã³ã), @@(ã³ãã³ã)ã¯å®éã«ã¯ã³ãã³ãã©ã¤ã³ã«å®è¡çµæãå±éãã¦ããããã§ãªããçµæãç´æ¥å¼æ°ã¨ãã¦ããã®ã§é«éã§ãã$(ã³ãã³ã), $$(ã³ãã³ã)ã¯ä»ã®è¨èªã§è¨ãã¨ä¸æã$(),$$()ãå±éããã¦ããevalããã¦ãããããªãã®ã§ããã@(),@@()ã®å ´åã¯åå¥è§£æããã¨ãã«ã¡ããã¨åå¥è§£æããã¦ã¾ãã ããã« big_file.txtã巨大ãªãã¡ã¤ã«ã ã¨ãã㨠> print $(cat big_file.txt) ã¯$(cat big_file.txt)ãå±éãã¦ããå®è¡ããã®ã§ãä½æéãå¾ ãããããã¨ã«ãªãã¾ãã > print @(cat big_file.txt) ã¯ããå¾ ãããããã¨ãç¡ãã§ãããã 4ã¤ç®ã®@@(ã³ãã³ã)ã¯ã³ãã³ãçµæãé åã§ãã£ãå ´åï¼saphireã§ã¯è¤æ°è¡ã®ããã¹ãã¯é åã§ããã¨èãã¾ã)ä¸ã¤ä¸ã¤ã®è¦ç´ (è¡)ãããããä¸å¼æ°ã¨ãã¦å®è¡ãã¾ãã > cp @(ls) /tmp lsã®åºåã®è¤æ°è¡ããã¹ã¦ä¸ã¤ã®å¼æ°ã¨ãã¦å±éããã¨ã©ã¼ > cp @@(ls) /tmp lsã®åºåã®ä¸è¡ä¸è¡ããä¸ã¤ãã¤ãä¸ã¤ã®å¼æ°ã¨ãã¦å±éãããã®ã§OK > ls | ary a > cp @@(ary a) /tmp é åã®ä¸ã¤ä¸ã¤ã®è¦ç´ ãä¸ã¤ã®å¼æ°ã¨ãã¦cpã«æ¸¡ãããã®ã§OK @@()ã«ä»²éã¯@@a(), @@m(), @@u(), @@w()ãããã¾ãã ããããé åã®åºåãã\a, \r, \n, \r\nã¨ãã¦è¦ç´ ãä¸ã¤ãã¤å¼æ°ã«ãã¾ãã > ls | ary a > cp @@a(ary -La a) /tmp 1.6 ã°ãã ã«ã¬ã³ããã£ã¬ã¯ããªãåºç¹ã¨ãã¦ã°ããã«ããããããã¡ã¤ã«åãè²¼ãä»ãã¾ãã * ä»»æã®æåå ? ä»»æã®ä¸æå [] æååã¯ã©ã¹ã[abc]ãªãaãbãcãã[a-z]ãªãa-zå ¨é¨ã[^a]ã¯a以å¤ã > puts [^mM]* a a.c aaa autom4te.cache bin conf10097.dir conf11225.dir conf15278.dir conf22554.sh conf9022.dir config.cache config.h config.h.in config.log config.status configure configure.in doc install.sh libsaphire.so.1.0 saphire saphire.c saphire.c.bak saphire.c.bak2 saphire.h saphire.o saphire.sao saphire.sh test.c tmp todo.txt usage.en.txt usage.ja.txt ã«ã¬ã³ããã£ã¬ã¯ããªããm, M以å¤ã§å§ã¾ããã¡ã¤ã«åã表示 注æãã¦ã»ããã®ã¯.*ã¯.ããå§ã¾ããã¡ã¤ã«åã«ããããã¾ããbasshãªã©ã¨éãsaphireã§ã¯.ã¨..ã«ã¯ããããã¾ããã 1.7.1 ã°ãã¼ãã«ãã¤ã æå¾ã«ã³ãã³ãåãæ¸ããã«ãã¤ã(|>)ã§çµããã¨ã°ãã¼ãã«ãã¤ãã«æ¸ãè¾¼ã¾ãã¾ããéã«ã³ãã³ãåãæ¸ããã«ãã¤ã(|>)ã§å§ã¾ãã¨ã°ãã¼ãã«ãã¤ãããèªã¿è¾¼ã¾ãã¾ããæ¸ãè¾¼ãã å¾èªã¿è¾¼ãåã«å¥ã®å¦çãè¡ã£ã¦ã大ä¸å¤«ã§ãã > ls | match -g . | join , |> > lv main.c > sleep 10 > |> less # ls | match -g . | join ,ã®çµæãlessããã ã°ãã¼ãã«ãã¤ãã¯ä½åº¦ãèªã¿è¾¼ãã¾ãã > echo aaa |> > |> print aaa > |> print aaa ãã³ãã¼ã°ãã¼ãã«ãã¤ããããã¾ãã > echo aaa |1> > echo bbb |2> > |1> print aaa > |2> print bb ã°ãã¼ãã«ãã¤ãã«è¿½è¨ããå ´å㯠> echo aaa |> > echo bbb |>> > |> print aaa bbb 1.7.1 ã³ã³ããã¹ããã¤ã ã³ã³ããã¹ãã«å¿ãã¦å ¥åããèªã¿è¾¼ã¿ã¾ãã ä½åº¦ã§ãèªã¿è¾¼ããã¨ãã§ãã¾ãã 1. ãµãã·ã§ã« ãã¤ãã§æ¸¡ããããã¼ã¿ããèªã¿è¾¼ã¿ã¾ãã > split "aaa bbb ccc" | (| print; | print; | sub -g . X) aaa bbb ccc aaa bbb ccc XXX XXX XXX 2. ã³ãã³ãã©ã¤ã³ããã æ¨æºå ¥åããèªã¿è¾¼ã¾ãã¾ãã > | print; | print (æ¨æºå ¥åããèªã¿è¾¼ã¾ãã¦åºå) 3. é¢æ°å é¢æ°ã«æ¸¡ããããã¤ãã®ãã¼ã¿ããèªã¿è¾¼ã¾ãã¾ããç¡ããªãæ¨æºå ¥åããã > def fun { | print | print } > print abc | fun abc abc > fun æ¨æºå ¥åããèªã¿è¾¼ã¾ãã¦åºåãããã 4. å é¨ã³ãã³ã eachã¯åãåã£ãããã¹ããä¸è¡ãã¤å解ãã¦ã³ã³ããã¹ããã¤ãã«ä¸è¡ã渡ãã¦æ¯è¡ãããã¯ãå®è¡ããã³ãã³ãã§ãã > ls / | each { | print; | print } bin bin etc etc ... ãã®ããã«å é¨ã³ãã³ãã§ã¯ã³ã³ããã¹ããã¤ãã使ã£ããã®ãããã¾ãã 1.7.3 ããã㯠ãããã¯ã¯ä¸æ¬å¼§ã§å²ã¾ããè¤æ°ã®ã³ãã³ãã®å¡ã§ãã ãããã¯ã¯ãã¼ãµã¼ã«ãã£ã¦ã³ã³ãã¤ã«ããããã®ãã³ãã³ãã«æ¸¡ããã¾ãã ç¹å®ã®å é¨ã³ãã³ããã¦ã¼ã¶ã¼ã³ãã³ãããããã¯ãåãåããã¨ãã§ãã¾ãã å¤é¨ã³ãã³ãã«ãããã¯ã渡ãã¦ãç¡è¦ããã¾ãã > eval { ls } main.c sub.c > print { ls } printã¯ãããã¯ãåãåããªãã®ã§ä½ã表示ããªã > echo { ls } å¤é¨ã³ãã³ãã¯ãããã¯ãåãåããªãã®ã§ä½ã表示ããªã ã¦ã¼ã¶ã¼é¢æ°ã§ãããã¯ãå®è¡ãããå ´åyeildã使ãã¾ãã > def fun { yeild 0; yield 1 } > fun { puts a } { puts b} a b yeildã®å¼æ°ã®çªå·ã«å¯¾å¿ãããããã¯ãã¦ã¼ã¶ã¼ã³ãã³ãã®ä¸ã§å®è¡ããã¾ãã ãããã¯ã«ã¯å¼æ°ã渡ãã¾ããå¼æ°ã¯ãããã¯éå§ã®ããå¾ã« : å¤æ°å å¤æ°å ... : ã¨ãããã¨ã§åãåãã¾ãã > def fun { yeild 0 data1 } > fun { :a: var a | pomch } > fun data1 1.7.4 æ¹è¡ã³ã¼ã æ¹è¡ã³ã¼ãã«ã¯ä»¥ä¸ã®ï¼ã¤ãããã¾ãã -Lu \n UNIXã®æ¹è¡ã³ã¼ã -Lw \r\n Windowsã®æ¹è¡ã³ã¼ã -Lm \r Macã®æ¹è¡ã³ã¼ã -La \a saphireãªãªã¸ãã«ã®æ¹è¡ã³ã¼ã saphireã¯æ¹è¡ã³ã¼ããé åã®åºåãã¨ãã¦ã¿ã¾ãã > split "aaa bbb ccc" | join , aaa,bbb,ccc # aaa bbb cccã¨ããæååãsplitã§é å(aaa\nbbb\nccc)ã«ãããjoinã§åºåãæåã,ã¨ãã¦æååã«æ»ã æ¹è¡ã³ã¼ãèªä½ãé åã®è¦ç´ ã¨ãã¦ä½¿ãããå ´å㯠-La, \aã使ãã¾ãã > split -La "aaa\nbbb\n ccc\nddd\n eee\nfff" " " | global -La a b c > global b ccc ddd split -Laã§é åã®åºåãã\aï¼ãã«ï¼ã¨ãã¦æ±ããæååãé åã«ããã(aaa\nbbb\n\accc\nddd\n\aeee\nfff")ããã®ãã¼ã¿ãglobal -La a b cã§é åã®åºåãã\a(ãã«)ã¨ãã¦åãåããa, b,c ã¨ããå¤æ°ã«æ ¼ç´ããã -Laãªã©ã®æ¹è¡ã³ã¼ããæ±ãï¼é åãæ±ãï¼ã³ãã³ãã«ã¯ä»¥ä¸ãããã¾ãã var, global, export, ary, ary_add,hash,hash_add, split, add, del, join, select, lines, scan, match, read, selector, ssort, printf, each, p 1.7.5 ãµãã·ã§ã« ()ã§æ¬ã£ãã³ãã³ããä¸ã¤ã®ã°ã«ã¼ãã¨ãã¦æ±ãã¾ããsaphireã®ãµãã·ã§ã«ã¯æ°ãã«saphireãå®è¡ãã¦ããã§ã³ãã³ããå®è¡ããã¦ããããã§ã¯ããã¾ãããæ°ãã«ããã»ã¹ãä½ã£ã¦ã¯ãã¾ããã > (print aaa; print bbb) | more aaabbb > if( ((true || flase) && true) || false ) { puts yes } | uc YES 1.8 å¶å¾¡æ ifæ if (æ¡ä»¶æ) {å®è¡æ} elif (æ¡ä»¶æ) {å®è¡æ} .... else {å®è¡æ} > print 1 | var a; if ([ $(var a) = 1 ]) { puts yes } else { puts no } | uc YES > print 1 | var a; if ([ @(var a) = 1 ]) { puts yes } else { puts no } | uc YES > print 1 | var a; if (var a | [ = 1 ]) { puts yes } else { puts no } | uc YES > a=1; vim a.sh a.shã«ä»¥ä¸ãå ¥å if (var a | [ = 1 ]) { puts yes } else { puts no } > load a.sh | uc YES ãããã¯ã®ä¸ã§ã¯æ¹è¡ã許ããã¾ãã whileæ while (æ¡ä»¶å¼) {å®è¡æ} > print 0 | var i; while(var i | [ -lt 3 ]) { var i | pomch; ++ i } 0 1 2 > vim a.sh print 0 | max cat main.c | each { | length | var len # ã³ã³ããã¹ããã¤ãã¯main.cãä¸è¡ãã¤èªã¿è¾¼ã¾ãã if(var max | [ -lt $(var len) ]) { var len | var max } } puts main.cã®ä¸è¡ãããã®æ大æåæ°ã¯$(var max)æåã§ãã > load a.sh main.cã®ä¸è¡ãããã®æ大æåæ°ã¯78æåã§ãã whileæã¯breakãCTRL-Cã§å²ãè¾¼ããã¨ã§æãããã¾ãã defæ def é¢æ°å ããã㯠> def fun { ary -s ARGV|pomch; puts $(ary ARGV 0) $(ary ARGV 1) ; ary ARGV }; fun a b c 3 a b a b c >vim a.sa def fun { print 2 | var a print 3 | global b puts $(var a) $(global b) } > load a.sa; print 1 | var a; print 2 | global b; (puts $(var a) $(var b); fun; puts $(var a) $(global b)) | less 1 2 2 3 1 3 é¢æ°å ã§ã¯å¼æ°ã¯ARGVã¨ããé åã«æ¸¡ããã¾ããã¾ãä¸ã§å®£è¨ããããã¼ã«ã«å¤æ°(varã«ãã宣è¨ãprint 1 | var aãªã©)ã¯é¢æ°ããæããã¨ãã«èªåçã«æ¶ãã¾ãã ç¹æ®ãªæ§æã¨ãã¦å¼æ°åãæå®ãããã¨ãã§ãã¾ãã > def fun -a _ARGV { puts $(ary -s _ARGV); puts $(ary _ARGV | join ,) }; fun a b c 3 a,b,c ãã®ã¨ã注æãã¦ã»ããã®ã¯ãã®ããã«å¼æ°ãæå®ãããã¦ã¼ã¶ã¼é¢æ°funãå¼ã°ããæã«é¢æ°ç¨ã«ã¹ã¿ãã¯ã¯ä½ãããªãã¨ãããã¨ã§ããã¤ã¾ãfunå ã§ã¯å¤ã®ãã¼ã«ã«å¤æ°ã«ã¢ã¯ã»ã¹ã§ãã¾ãããfunå ã§å®ç¾©ãããã¼ã«ã«å¤æ°ã¯å¤ã§ãçãã¦ãã¾ããããã¯ãããã¯ã使ã£ãã¦ã¼ã¶ã¼å®ç¾©ã®å¶å¾¡æ§æã®å®ç¾©ã«ä½¿ç¨ãã¾ãã > vim saphire.sh def each -a _ARGV { print 1 | var NR | while(read |>) { yield 0 ++ NR } } ãã®ããã«å®ç¾©ããã¨eachã«æ¸¡ããããã¯ã§å¤ã§å®ç¾©ããããã¼ã«ã«å¤æ°ã«ã¢ã¯ã»ã¹ã§ãã¾ãã > print 1 | var a; ls -al | each { |> var line; puts "$(var a):$(var line)"; ++ a }; puts $(var a) é¢æ°ã¯returnã§æ»ãã¾ã selfå é¨ã³ãã³ãã§ç¾å¨ã®å®è¡ç¶æ³ãè¦ããã¨ãã§ãã¾ãã 1.9 ãã¬ã¼ã¹å±é ããã¾ããã 2.0 ããã»ã¹ç½®æ <(è¤æ) ã³ãã³ãã®çµæããã¡ã¤ã«ã¨ãã¦æ±ã > cat <(echo aaa) <(echo bbb) aaa bbb > diff <(ls ./etc) <(ls /etc) ls ./etcã¨ls /etcã®ä¸¡æ¹ã®åºåãdiffããã >(è¤æ) ãã¡ã¤ã«ã®ä»£ããã«ãããã¯ãå®è¡ãã > ls | tee >(grep main | less) | less ls ã®çµæãlessããã¦ãããls | grep mainã®çµæãlessããã 3.1.5ããã©ã¡ãã®ããã»ã¹ç½®æãã³ã³ãã¤ã«ããVMã§å¦çãããããã«ãªã£ã¦ã¾ãã 2.0.1 ä¾å¤å¦ç try { æ } catch { ä¾å¤çºçæã®å¦ç } æã®æ»ãå¤ã0以å¤ãªã catchå¾ã®ãããã¯ãå®è¡ãã¾ã ã¨ã©ã¼ãçºçããã¨ããã§ãã > try { false; puts aaa } catch { puts bbb } bbb 注æãã¦ã»ããã®ã¯ãã¤ãã®æå¾ã®ã³ãã³ãã®æ»ãå¤ããè¦ãªããã¨ã§ãã > try { false | cat; puts aaa } catch { puts bbb } aaa ã¨ã©ã¼ãçºçããå ´åã¯ãã¤ãã®éä¸ã§ãcatch以ä¸ã«ç§»è¡ãã¾ãã > try { fg 10000 | less } catch { puts bbb } bbb 2.0.2 ãã¢ããã¥ã¡ã³ã ã½ã¼ã¹ãã¡ã¤ã«ã«ããã¹ããåãè¾¼ãã§ä¸ã¤ã®ãã¡ã¤ã«ã¨ãã¦æ±ãã¾ãã > vim a.sa cat <<EOL # <<ã®å¾ã®æååãæé ã«è¦ã¤ããã¾ã§åãè¾¼ãããã¹ãã¨ãã aaa bbb ccc EOL # ããã§çµãã > load a.sa aaa bbb ccc 注æãã¦ã»ããã®ã¯æé ã«è¦ã¤ããã¾ã§ã¨ãããã¨ã§ããä»ã®è¨èªã¨éããã®æååãåç¬ã§ããè¡ã¾ã§ã§ã¯ããã¾ããã ããã«ãã£ã¦ä»¥ä¸ã®ãããªãã®ãæ¸ãã¾ãã > vim a.sa cat <<EOL aaa bbb ccc EOL | cat -n > load a.sa 1 aaa 2 bbb 3 ccc è¡é ã§è¦ã¤ãã£ããããã§ãã¢ããã¥ã¡ã³ããæ¢ããã®ã§ã³ãã³ãã©ã¤ã³ã®ç¶ããæ¸ãã¾ãã ã³ãã³ãå±éãå±éããããªãå ´å㯠çµç«¯æååãã·ã³ã°ã«ã¯ã©ã¼ãã§å²ã£ã¦ãã ããã > vim a.sa print 000 | global a cat <<'EOL' $(global a) aaa bbb ccc EOL > load a.sa $(global a) aaa bbb ccc 2.0.3 ãªãã¸ã§ã¯ãæå classå é¨ã³ãã³ãã§ã¯ã©ã¹ã追å ãã¾ãã > vim Student.sa class Student { | global name age def show { global name age | printf "name %s\nage %d\n" } def show2 { self->show } } ãªãã¸ã§ã¯ãã®å®ç¾©ã¯ ã¯ã©ã¹å ãªãã¸ã§ã¯ãå å¼æ°ï¼ å¼æ°2 ... ã§ãã > load Student > split "nobita 12" | Student nobita ã¡ã½ãã㯠ãªãã¸ã§ã¯ãå->ã¡ã½ããå ã§å¼ã³åºãã¾ãã > nobita->show name nobita age 12 ã¯ã©ã¹ã¯é¢æ°å¼ã³åºãã®ãããªãã®ã§ã¯ã©ã¹ã®ãããã¯ããªãã¸ã§ã¯ãå®ç¾©æ(ä¸ã®ä¾ã ã¨Student nobitaå¼ã³åºãæ)ã«å®è¡ããããªãã¸ã§ã¯ãã«global, hash, aryãdefã®å®ç¾©ããªãã¸ã§ã¯ãã®å±æ§ã¨ãã¦è¿½å ããã¦ããã¾ããdefã¯ã¡ã½ããã¨ãã¦ãªãã¸ã§ã¯ãã«è¿½å ããã¾ãããªãã¸ã§ã¯ãã¯ã¯ã©ã¹ãã¨ã«ã¡ã½ããã®å®ç¾©ãæãããªãã¸ã§ã¯ãåå¥ã«ã¡ã½ããã®å®ç¾©ãæã¡ã¾ãã ã¯ã©ã¹å ã§å¤é¨ã®ã°ãã¼ãã«å¤æ°ã«ã¢ã¯ã»ã¹ãããã¨ãã¯global, ary, hashã«-gãªãã·ã§ã³ãã¤ãã¦ãã ããã ã¯ã©ã¹å ã§èªåã®ãªãã¸ã§ã¯ãã®ã¡ã½ãããå¼ã³åºãããã¨ã㯠self->ã¡ã½ããå ã使ã£ã¦ãã ãã ã¯ã©ã¹ã¯ãã¹ããããã¨ãã§ãã¾ãã ãã¹ãããã¯ã©ã¹ã¯ãã®ã¯ã©ã¹ã®ä¸ã¨ä¸ã®ãã¹ããããã¯ã©ã¹ã®ä¸ã§ããå¼ã³åºãã¾ããã(ã¨ãããããªãã¸ã§ã¯ãã¯è¦ªã®ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ãå¼ã³åºãã) class Parent { class Klass { def yes { puts yes } } class Child { Klass klass klass->yes } Child child } > Parent parent yes object åå1 å¼æ°1 å¼æ°2 ... { ããã㯠} ã§ã¯ã©ã¹ã§åæåãããªããªãã¸ã§ã¯ããä½ããã¨ãã§ãã¾ãã ãããã¯ã¯ãã£ã¦ãç¡ãã¦ãããã§ãã ãããã¯ãããã°ãªãã¸ã§ã¯ããå¼æ°ã¨ãã¦ãããã¯ãå®è¡ãã¾ãããããã¯ã®é¨åãã¯ã©ã¹ã®ãããªãã®ã§ãã > object a { def yes { puts yes } }; a->yes yes ãªãã¸ã§ã¯ã->class { ããã㯠} å¼æ°1 å¼æ°2... ãªãã¸ã§ã¯ã->class ã¯ã©ã¹å å¼æ°1 å¼æ°2... ã§å¾ãããªãã¸ã§ã¯ãã«ã¡ã½ãããå±æ§ã追å ãããã¨ãã§ãã¾ãã > object a; a->class { def yes { puts yes } }; a->yes yes ãªãã¸ã§ã¯ããææããã¯ã©ã¹(ãå±æ§)ã¯->classå ã§ãã使ç¨ãããã¨ãã§ãã¾ããã > object a { class Klass { def yes { puts yes } } } > a->class { Klass klass; klass->yes } yes > Klass klass ã¨ã©ã¼ ä¸ã®ãã¹ãããã¯ã©ã¹ã®ä¾ãããã§æ¸ãã¨è¦ªãªãã¸ã§ã¯ãã®ã¯ã©ã¹ãå¼ã³åºãããã¨ãåããã¾ãã > vim a.sa object object object->class { class Parent { def yes { puts yes } } object a { object a { Parent a a->a } } } > load a.sa yes ã¾ãåä¾ã®ãªãã¸ã§ã¯ãã¯è¦ªã®ãªãã¸ã§ã¯ãã®å±æ§ã«ã¢ã¯ã»ã¹ã§ãã¾ãã > class A { print 1 | global a; object a { global a | pomch }; } > A a 1 inherit ã§ãªã¼ãã¼ã©ã¤ãããã¯ã©ã¹ãã¡ã½ããã®å ã®ã¯ã©ã¹ãã¡ã½ãããå¼ã³åºãã¾ãã > vim a.sa class A { def fun1 { puts fun1 } } class A { inherit; def fun1 { inherit puts after } def fun2 { puts fun2 } } > A a; a->fun1; a->fun2 fun1 after fun2 class bããclass aãç¶æ¿ããããªã > vim a.sa class a { def fun { puts fun } } class b { self->class a def fun2 { puts fun2 } } > b b; b->fun; b->fun2 fun fun2 ã§ããã¾ãã ãªãã¸ã§ã¯ãããã¼ã«ã«å¤æ°ã¨ãã¦ä½¿ãã«ã¯-lãªãã·ã§ã³ãã¤ãã¦ã¯ã©ã¹ãå¼ã³åºããobjectã®å¼æ°ã«-lãªãã·ã§ã³ãã¤ãã¦ãã ããã > object -l a; a->class { def yes { puts yes } }; a->yes > class A { puts A }; A -l a ã¡ã½ããã®å¼ã³åºãæã®ãªãã¸ã§ã¯ãã®åç §é 㯠ãã¼ã«ã«å¤æ°->ãªãã¸ã§ã¯ãã®å±æ§->ã°ãã¼ãã«å¤æ°ã¨ãªã£ã¦ãã¾ãã ã°ãã¼ãã«å¤æ°ã®aãªãã¸ã§ã¯ãã¨ãã¼ã«ã«å¤æ°ã®aãããã¨ã a->class ã¯ãã¼ã«ã«å¤æ°ã®aã®ã¯ã©ã¹ã¡ã½ãããå¼ã¶ãã¨ã«ãªãã¾ãã ã¯ã©ã¹å ã§ã®showã§ãªãã¸ã§ã¯ãã®å±æ§ã®å®ç¾©æ å ±ãè¦ãã¾ãã-gã§ã°ãã¼ãã«ç©ºéã§è¦ãã¾ã ã¯ã©ã¹å ã§ã®sweepã§ãªãã¸ã§ã¯ãã®å±æ§ãåé¤ãããã¨ãã§ãã¾ãã-gã§ã°ãã¼ãã«ç©ºéã®å¤æ°ãæ¶ãã¾ãã classã¨defã«ã¯-overrideãªãã·ã§ã³ãä»ãããã¨ã«ãã£ã¦ä¸æ¸ããããã¨ãã§ãã¾ãã(ãã®å ´åã¯åã®å®ç¾©ãinheritã§å¼ã³åºããã¨ã¯ã§ããªããªã) > class A { puts A } > class A { inherit ; puts B } > A a A B > class -override A { inerit; puts C } > A a error 2.0.3.2 inherit inheritã§ã®ãªã¼ãã¼ã©ã¤ãããé¢æ°ã®å¼ã³åºãã¯å é¨ã³ãã³ãã§ãæå¹ã§ããã¤ã¾ã > def cd { inherit @@(ary ARGV); ls } > cd / Applications Developer Library Network System Users Volumes bin cores dev etc home lib mach_kernel net opt private sbin tmp usr var > pwd / ã > def exit { msleep 3; inherit @@(ary ARGV) } > exit .oO.oO.oO.oO exited 2.0.4 ãªãã¡ã¬ã³ã¹ > ls | ary a > ary -mem a |ref x > ary $x lsã®åºå > pwd |ary_add $x > ary $x lsã¨pwdã®åºå ã®ãããªä½¿ãæ¹ããã¾ããååã§$ãã¤ããã¨ãªãã¡ã¬ã³ã¹ã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ãã¾ãã > ary -mem a | ref Array ã¨refã ããªãã¡ã¢ãªã«å ¥ã£ã¦ãããªãã¸ã§ã¯ãã®ç¨®å¥ãåããã¾ãã ãªãã¡ã¬ã³ã¹ã¯-lã§ãã¼ã«ã«å¤æ°ã¨ãã¦ãã¯ã©ã¹ã®å®è¡å ã§ã¯å±æ§ã¨ãã¦æ±ããã¾ãã é¢æ°ãã¯ã©ã¹ããªãã¡ã¬ã³ã¹ã¨ãã¦æ±ãã¾ãã > def fun { puts fun } > def -mem fun | ref x > $x fun > class Klass { puts Klass } > class -mem Klass | ref x > $x a Klass ãªãã¸ã§ã¯ãããªãã¡ã¬ã³ã¹ã¨ãã¦æ±ãã¾ãã > object a { def yes { puts yes } } > object -mem a | ref x > $x->yes yes ååã®ã¢ã¯ã»ã¹é 㯠ãã¼ã«ã«å¤æ° -> ãªãã¸ã§ã¯ãå±æ§ -> ã°ãã¼ãã«ãªãã¸ã§ã¯ã ã¨ãªã£ã¦ãã¾ãã é åãããã·ã¥ãã°ãã¼ãã«ããªãã¸ã§ã¯ããã¯ã©ã¹ãé¢æ°ã¯-newãªãã·ã§ã³ãã¤ãã¦çæãã¦ãªãã¡ã³ã¹ã«ä»£å ¥ãããã¨ãã§ãã¾ãã > ls | ary -new | ref x > ary $x lsã®çµæ > object -new { def yes { puts yes } } | ref y > $y->yes yes 2.0.5 ã¤ã³ã¿ã©ã¯ãã£ãã·ã§ã« bashã¨åããreadlineã使ã£ã¦ããã®ã§bashã¨åããããªä½¿ç¨æ¹æ³ã使ãã¾ããç¹å¾´ã¨ãã¦ã¯migemoã«ããæ¥æ¬èªãã¡ã¤ã«åã®è£å®ãè¡ãç¹ã§ãã > ls UTF8æ代ã ããæ¥æ¬èªãã¡ã¤ã«åã使ãã ã¨ãã§ã¡ã©ã¯ã«ã > ls efe[TAB] > ls ã¨ãã§ã¡ã©ã¯ã«ã ã¨è£å®ããã¾ã C-xãæ¼ãã¨macroã¦ã¼ã¶ã¼é¢æ°ãå®è¡ããã¾ããå®è¡çµæãã³ãã³ãã©ã¤ã³ã«è²¼ãä»ãããã¾ããmacroã¦ã¼ã¶ã¼ã³ãã³ãã¯saphire.saã§å®ç¾©ããã¦ãã¾ããmacroã¦ã¼ã¶ã¼ã³ãã³ãã®ã³ã³ããã¹ããã¤ãã«ã¯å ¥åä¸ã®ã¤ã³ã¿ã©ã¯ãã£ãã·ã§ã«ã®ã³ãã³ãã©ã¤ã³ãå ¥ã£ã¦ã¾ãã å®è£ ã¯readline.cã§è¡ã£ã¦ãã¾ãã 2.0.6 ãªãã·ã§ã³ -c "ã³ãã³ã" ã³ãã³ãã®å®è¡ -rs ã©ã³ã¿ã¤ã ã¹ã¯ãªãããã½ã¼ã¹ãã¡ã¤ã«ã¨ãã¦å®è¡ -ro ã©ã³ã¿ã¤ã ã¹ã¯ãªãããã³ã³ãã¤ã«æ¸ã¿ãã¡ã¤ã«ã¨ãã¦å®è¡(ããã©ã«ã) -rn ã©ã³ã¿ã¤ã ã¹ã¯ãªãããå®è¡ããªã -ts ã¿ã¼ããã«æ¼¢åã³ã¼ããsjisã¨ãã -tw ã¿ã¼ããã«æ¼¢åã³ã¼ããutf8ã¨ãã -te ã¿ã¼ããã«æ¼¢åã³ã¼ããeucjpã¨ãã -s saphireã®æ¼¢åã³ã¼ããsjisã¨ãã -w saphireã®æ¼¢åã³ã¼ããutf8ã¨ãã -e saphireã®æ¼¢åã³ã¼ããeucjpã¨ãã -Lu ã©ã¤ã³ãã£ã¼ã«ãã®è¨å®ãLFã¨ãã -Lm ã©ã¤ã³ãã£ã¼ã«ãã®è¨å®ãCRã¨ãã -Lw ã©ã¤ã³ãã£ã¼ã«ãã®è¨å®ãCRLFã¨ãã --version ãã¼ã¸ã§ã³ã表示ãã bashã·ã§ã«ã§saphireã使ããã¨ãã§ãã¾ãã $ ls | saphire -c '| each { | scan . | each { | add -n 0 X } | join "" | pomch }' | less 2.0.7 ã¹ã¯ãªãããã¡ã¤ã«ã®å®è¡ saphire ã¹ã¯ãªãããã¡ã¤ã«å saphiresh ã¹ã¯ãªãããã¡ã¤ã«å ã¨ãããã¨ã§ã¹ã¯ãªãããã¡ã¤ã«ãå®è¡ã§ãã¾ãã (saphireã®æ¹ãã¤ã³ã¿ã©ã¯ãã£ãã·ã§ã«é¢é£ã®ã©ã¤ãã©ãªããã¼ãããªãåéã) ã°ãã¼ãã«å¤æ°SCRIPT_FILE_NAMEã«ã¹ã¯ãªãããã¡ã¤ã«åãå ¥ã£ã¦ãã¾ãã é åARGVã«å¼æ°ãå ¥ã£ã¦ãã¾ãã ã¹ã¯ãªãããã¡ã¤ã«ã¯UTF8ã§æ¸ããã¦ããå¿ è¦ãããã¾ãã ã¾ãæ¹è¡ã³ã¼ãã¯LFã§ç¡ãã¨ããã¾ããã 2.0.8 ã¦ã¼ã¶ã¼ã«ã¹ã¿ãã¤ãºè£å® completion.saã§è¡ã£ã¦ããã¾ããã¦ã¼ã¶ã¼ã¯~/.saphire/completion.saã§è¡ã£ã¦ãã ããã ã«ã¹ã¿ãã¤ãºè£å®ã®ã³ãã³ãã¯ä»¥ä¸ã§ãã completion ã³ãã³ãå .... { ããã㯠} ã³ã³ããã¹ããã¤ãã«ã¯å ¥åä¸ã®ã³ãã³ãã©ã¤ã³ãå ¥ã£ã¦ã¾ãï¼ã³ãã³ã å¼æ°1...)ã®å½¢å¼ã§ããããã¯ã®åºåã®ãªã¹ãå½¢å¼ï¼æ¹è¡åºåãã®ããã¹ãï¼ãè£å®åè£ã¨ãªãã¾ãã 2.0.9 ãã¿éã -newãªãã·ã§ã³ã§ä½ãããé åããªãã¸ã§ã¯ããªã©ã¯ãªãã¡ã¬ã³ã¹ã«ã¦ã³ãã®GCã®å¯¾è±¡ã¨ãªãã¾ãããã ããsweep -gcãå®è¡ãããã¾ã§ã¡ã¢ãªã«æ®ãç¶ãã¾ãããã¾ã«sweep -gcãå®è¡ãã¦ãã ããã > ls | ary -new | ref a > ary $a main.c .... > sweep a ary -newã®ãªãã¸ã§ã¯ãããã¿ã¨ãªã > sweep -gc 1 object deleted 2.1 çµã¿è¾¼ã¿ã³ãã³ã msleep sleepã¨åããå®è¡ãæ¢ãã¾ããç»é¢ã«ã¢ãã¡ã¼ã·ã§ã³ã表示ããã¾ãã true ãªã¿ã¼ã³ã³ã¼ã 0ãè¿ãã¾ã false ãªã¿ã¼ã³ã³ã¼ã 1ãè¿ãã¾ã [ -I ãã¤ãããå ¥åãåãåã£ã¦æ¯è¼ æ¡ä»¶å¤å®å¼ãå®è¡ãã¾ãã詳ããã¯man [ãã¦ãã ããããã ãbashãªã©ã®[ã®å ¨ã¦ã®æ¡ä»¶å¼ãå®è£ ãã¦ããããã§ã¯ããã¾ããã saphireã®[ã®ç¹å¾´ã¨ãã¦ã¯[ æåå -re æ£è¦è¡¨ç¾ ]ã§æ£è¦è¡¨ç¾ã®æ¡ä»¶å¼ã使ããã¨ããã§ãããããããå ´å以ä¸ã®ç¹æ®ãªãã¼ã«ã«å¤æ°ã使ãã¾ãã PREMATCH ãããããæååã®åã®é¨åãå ¥ã MATCH ãããããæååãå ¥ã POSTMATCH ãããããæååã®å¾ã®é¨åãå ¥ã æ°å¤ ã°ã«ã¼ãåã§ããããããã®ãåããé çªã«å ¥ãã¾ã >[ abcdefg -re c ]; var PREMATCH MATCH POSTMATCH | join , ab,c,defg ã°ã«ã¼ãåããæååã¯å¯¾å¿ããæ°å¤ãå¤æ°åã«æã¤å¤æ°ã«å ¥ãã¾ãã >[ abcdefg -re '(.+)(c)(.+)' ]; var 1 2 3 | join , ab,c,defg -reã®ä»²éã«ä¸ãããã¾ã -rei 大æåå°æååºå¥ããªã -rem è¤æ°è¡å¯¾å¿ -reim, -remi 大æåå°æååºå¥ããªããè¤æ°è¡å¯¾å¿ ãã¨saphireã«ã¯æååã®å¤§å°æ¯è¼ãããã¾ãã -slt å·¦å´ã®æååãå°ãããªãç -sle å·¦å´ã®æååãå°ãããçãããªãç -sgt å³å´ã®æååã大ãããªãç -sge å³å´ã®æååã大ãããçãããªãç -silt å·¦å´ã®æååãå°ãããªãç(大æåå°æåã¯åãç©ã¨ãã¦æ±ã) -sile å·¦å´ã®æååãå°ãããçãããªãç(大æåå°æåã¯åãç©ã¨ãã¦æ±ã) -sigt å³å´ã®æååã大ãããªãç(大æåå°æåã¯åãç©ã¨ãã¦æ±ã) -sige å³å´ã®æååã大ãããçãããªãç(大æåå°æåã¯åãç©ã¨ãã¦æ±ã) =i å·¦å³ã®æååãçãããªãçï¼å¤§æåå°æåã¯åããã®ã¨ãã¦æ±ã) ã»ãã«ãsaphireã®[ã¯æã®ãã¤ãã®ï¼çªç®ä»¥éã§å®è¡ãããã¨ãã¤ãå ¥åããæååãåãåã£ã¦ããã®æååã第ä¸å¼æ°ã¨ãã¦å¤å®ãããã¨ãã§ãã¾ãã >print aaa | [ = aaa ]; global RCODE 0 >print aaa | [ ! = aaa ]; global RCODE 1 >print aaa | if([ -I = aaa ]) { puts yes } else { no } yes >print aaa | if(| [ = aaa ]) { puts yes } else { no } yes ãã®æ¡ä»¶å¼ã¯ç¹å¥ãªæ§æã§ã¯ãªãçµã¿è¾¼ã¿ã³ãã³ããªã®ã§æ¸ãæ¹ã«æ³¨æãã¦ãã ãã [aaa=aaa] ->[aaa=aaa]ã¨ããã³ãã³ãã¯ç¡ãã®ã§ã ã [ aaa=aaa ] -> 第äºå¼æ°ãaaa=aaaã¨ãªãã®ã§ã ã [ aaa = aaa] -> 第ï¼å¼æ°ãaa]ã¨ãªãã®ã§ã ã [ aaa = aaa ] -> ok index 対象æåå æ¤ç´¢æåå index -I æ¤ç´¢ãããæåå | index æ¤ç´¢ãããæåå rindex 対象æåå æ¤ç´¢æåå rindex -I æ¤ç´¢ãããæåå | rindex æ¤ç´¢ãããæåå æååããæ¤ç´¢ãããæååãç¾ããå ´æ(æååã®å é ããã®ã¤ã³ããã¯ã¹)ãåºåãã¾ããæååã®ã¤ã³ããã¯ã¹ã¯0ããã§ããrindexã¯æ¤ç´¢ãå³ããå·¦ã«è¡ãã¾ã -q å¤å®ã ããã¦åºåãããªãããªã¿ã¼ã³ã³ã¼ãã®å¤ã ããè¦ããã¨ãã«ä½¿ãã¾ãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã -I ãã¤ãããæååãåãåã(saphireã®çµã¿è¾¼ã¿ã³ãã³ãã§ã¯ãã¤ãã®äºçªç®ä»¥éã«ã³ãã³ããå®è¡ãããã¨èªåçã«-Iãã¤ãããã®ã¨ãã¦å¦çããã¾ã) -c æ°å¤ æ¤ç´¢åæ°ã®æå®ã2ãæå®ãããã¨2åç®ã®ãããããä½ç½®ãè¿ããã¾ã -n æ°å¤ æååã®æ¤ç´¢éå§ä½ç½®ãæå®ãã¾ãã -b ãã¤ãåä½ã§æ°ããã¤ã³ããã¯ã¹ãè¿ã -t ã¿ã¼ããã«ã§ã®æååå¹ ã§æ°ããã¤ã³ããã¯ã¹ãè¿ãã -i è±åã®å¤§æåã¨å°æåãåºå¥ããªã length æåå length -I | length æååã®é·ããåºåãã¾ãã -I å ¥åãããæååã®é·ããè¿ãã¾ãã(ãã¤ãã®äºã¤ç®ä»¥éã«ã³ãã³ããããå ´åã¯å¿ è¦ããã¾ããã) -nl æ¹è¡ãåºåãã¾ãã -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ°ãã¾ãã -t ã¿ã¼ããã«ã§ã®æååã®å¹ ãè¿ãã¾ãã -b ãã¤ãæ°ãè¿ãã¾ã -L æ¹è¡ã®æ°ãè¿ã uc uc -I | uc æååã大æåã«å¤æãã¾ã -I å ¥åãããæååãå¦çãã¾ãã(ãã¤ãã®äºã¤ç®ä»¥éã«ã³ãã³ããããå ´åã¯å¿ è¦ããã¾ããã) -l æ¹è¡ãåºåãã¾ãã -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç lc lc -I | lc æååãå°æåã«å¤æãã¾ã -I å ¥åãããæååãå¦çãã¾ãã(ãã¤ãã®äºã¤ç®ä»¥éã«ã³ãã³ããããå ´åã¯å¿ è¦ããã¾ããã) -l æ¹è¡ãåºåãã¾ãã -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç chomp chomp -I | chomp æååã®æå¾ã«ããæ¹è¡ãé¤å»ãã¾ãã(LF, CRLF, CRã®ã©ãã§ã対å¿ãã¦ãã¾ã) pomch | pomch æååã®æå¾ã«æ¹è¡ãç¡ããã°æ¹è¡ã追å ãã(LF, CRLF, CRã®åºå¥ã¯linefieldã®è¨å®ã«ãã) -Lw CRLFãå ãã -Lu LFãå ãã -Lm CRãå ãã substr 対象æåå ã¤ã³ããã¯ã¹ [ã«ã¦ã³ã] substr -I ã¤ã³ããã¯ã¹ [ã«ã¦ã³ã] | substr ã¤ã³ããã¯ã¹ [ã«ã¦ã³ã] é¨åæååãå¾ã¾ã -c å ¥åãchompãã¦ï¼æ¹è¡ãé¤å»ãã¦ï¼ããå¦çãã¾ã -l æå¾ã«æ¹è¡æåãåºåãã¾ã -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ°ãã¾ãã -b ãã¤ãiåä½ã§æ°ãã¾ã eval ããã㯠| eval ãããã¯ãå®è¡ãã¾ãã | evalã¯ãã¤ããããã¼ã¿ãèªã¿è¾¼ãã§å®è¡ãã¾ã fg ã¸ã§ãçªå· ã¸ã§ãçªå·ã®ã¸ã§ãããã©ã¢ã°ã©ã³ãã°ã«ã¼ãã«ãã¾ããï¼åé¢ã«æã£ã¦ããï¼ bg ã¸ã§ãçªå· ã¸ã§ãçªå·ã®ã¸ã§ãã«SIGCONTãéãã¾ããããã¯ã°ã©ã¦ã³ãã®ã¾ã¾å®è¡ãåéãã¾ãã jobs ã¸ã§ãã®ä¸è¦§ã表示ãã¾ãã rehash ã³ãã³ãã©ã¤ã³è£å®ã®ã³ãã³ãåã®ä¸è¦§ã®ãã£ãã·ã¥ãæ´æ°ãã¾ããæ°ããããã°ã©ã ãã¤ã³ã¹ãã¼ã«ããããrehashãå®è¡ããã¨ããã®ããã°ã©ã ã®è£å®ãæå¹ã«ãªãã¾ãã kanjicode [-s|-e|-w] -s saphireãå¦çããæ¼¢åã³ã¼ããSJISã¨ãã¦è¨å®ãã¾ã -e saphireãå¦çããæ¼¢åã³ã¼ããEUCJPã¨ãã¦è¨å®ãã¾ã -w saphireãå¦çããæ¼¢åã³ã¼ããUTF8ã¨ãã¦è¨å®ãã¾ã -q å®è¡çµæãåºåãã¾ãã saphireãå¦çããæ¼¢åã³ã¼ãã¨ããã®ã¯å ·ä½çã«ã¯å¤æ°ãé åã®æ·»ãåã®æ°ãæ¹ãæåã®æ°ãæ¹ã«é¢é£ããå é¨é¢æ°ã®-s,-e,-wãæå®ããªãå ´åã®ããã©ã«ãã®æåã³ã¼ãã¨ãããã¨ã§ã linefield [-Lw|-Lm|-Lu] -Lw saphireãå¦çããæ¹è¡ã³ã¼ããCRLFã¨ãã¦å¦çãã¾ã -Lm saphireãå¦çããæ¹è¡ã³ã¼ããCRã¨ãã¦å¦çãã¾ã -Lu saphireãå¦çããæ¹è¡ã³ã¼ããLFã¨ãã¦å¦çãã¾ã -q å®è¡çµæãåºåãã¾ãã saphireãå¦çããæ¹è¡ã³ã¼ãã¨ããã®ã¯çµã¿è¾¼ã¿ã³ãã³ãããã¤ãã«ãã£ã¦æååãä¸è¡åãåãå ´åã®æ¹è¡ã³ã¼ãã§ããã»ãã«ãjoinãsplitãªã©çµã¿è¾¼ã¿ã³ãã³ãã®å¦çã§ä½¿ããã¾ãã var å¤æ°å å¤æ°å ãã¼ã«ã«å¤æ°ã®åºå å¤æ°ãã¾ã ä»£å ¥ããã¦ããªãå ´åã¯ç©ºæååãä»£å ¥ãã¦åºåãããã¾ã ä»£å ¥ããã¦ãªãã¦-nãæå®ãããå ´å0ãä»£å ¥ãã¦åºåããã var -I å¤æ°å å¤æ°å... | var å¤æ°å å¤æ°å... åå¤æ°åã«å ¥åããä¸è¡ãã¤åãåã£ã¦ãchompãã¦ä¸è¡ãåå¤æ°åã«ä»£å ¥ãã¾ã > print aaa\nbbb | var a b; var a b | join , aaa,bbb -ncãªãã·ã§ã³ã§chompããã«æ¹è¡ã³ã¼ããä¸ç·ã«å¤æ°ã«ä»£å ¥ãã¾ã -f åºåãæå(è¤æ°å¯è½) åºåãæååãæ¹è¡ã§ãªãå¥ã®ãã®ã«è¨å®ãã¾ãã -I å ¥åããæååãåãåãå¤æ°ã«è¨å®ãã -p åºåãè¡ã -n ä»£å ¥ããã¦ããªãã¦åºåããããåæå¤ã0ã¨ãã -l åºåã®æå¾ã«æ¹è¡ã追å -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -shift å ¥åã§åã£ãå¤ã®æ®ããåºå global å¤æ°å å¤æ°å ã°ãã¼ãã«å¤æ°ã®åºå å¤æ°ãã¾ã ä»£å ¥ããã¦ããªãå ´åã¯ç©ºæååãä»£å ¥ãã¦åºåãããã¾ã ä»£å ¥ããã¦ãªãã¦-nãæå®ãããå ´å0ãä»£å ¥ãã¦åºåããã global -I å¤æ°å å¤æ°å | global å¤æ°å å¤æ°å... åå¤æ°åã«å ¥åããä¸è¡ãã¤åãåã£ã¦ãchompãã¦ä¸è¡ãåå¤æ°åã«ä»£å ¥ãã¾ã -nc ãªãã·ã§ã³ã§chompããã«æ¹è¡ã³ã¼ããä¸ç·ã«å¤æ°ã«ä»£å ¥ãã¾ã -f åºåãæå(è¤æ°å¯è½) åºåãæååãæ¹è¡ã§ãªãå¥ã®ãã®ã«è¨å®ãã¾ãã -nc æ¹è¡ãchompããã«å¤æ°ã«ä»£å ¥ãã -I å ¥åããæååãåãåãå¤æ°ã«è¨å®ãã -p åºåãè¡ã -l åºåã®æå¾ã«æ¹è¡ã追å -n ä»£å ¥ããã¦ããªãã¦åç §ããããåæå¤ã0ã¨ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -shift å ¥åã§åã£ãå¤ã®æ®ããåºå > ls | global -shift a b | ary a export å¤æ°å å¤æ°å ç°å¢å¤æ°ã®åç § å¤æ°ãã¾ã ä»£å ¥ããã¦ããªãå ´åã¯ç©ºæååãä»£å ¥ãã¦åºåãããã¾ã ä»£å ¥ããã¦ãªãã¦-nãæå®ãããå ´å0ãä»£å ¥ãã¦åºåããã export -I å¤æ°å å¤æ°å | export å¤æ°å å¤æ°å... åå¤æ°åã«å ¥åããä¸è¡ãã¤åãåã£ã¦ãchompãã¦ä¸è¡ãåå¤æ°åã«ä»£å ¥ãã¾ã -ncãªãã·ã§ã³ã§chompããã«æ¹è¡ã³ã¼ããä¸ç·ã«å¤æ°ã«ä»£å ¥ãã¾ã -l åºåã®æå¾ã«æ¹è¡ã追å -nc æ¹è¡ãchompããã«å¤æ°ã«ä»£å ¥ãã -I å ¥åããæååãåãåãå¤æ°ã«è¨å®ãã -p åºåãè¡ã -n ä»£å ¥ããã¦ããªãã¦åç §ããããåæå¤ã0ã¨ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã print åºåæåå print -I | print -l æååã®æå¾ã«æ¹è¡æåã追å ãã -I å ¥åãåãåã£ã¦åºåãã -f åºåãæåãè¨å®ãã puts åºåæåå puts -I | puts -I å ¥åãåãåã£ã¦åºåãã -f åºåãæåãè¨å®ãã compile ãã¡ã¤ã«å saphireã®ã¹ã¯ãªãããã³ã³ãã¤ã«ãã¦ã³ã³ãã¤ã«çµæããã¡ã¤ã«å.saoã¨ãã¦åºåãã load ãã¡ã¤ã«å saphireã®ã¹ã¯ãªãããèªã¿è¾¼ã¿å®è¡ãã -sao ã³ã³ãã¤ã«æ¸ã¿ã®ã¹ã¯ãªãããã¡ã¤ã«ãèªã¿è¾¼ã¿å®è¡ãã exit -f ã¸ã§ãããã£ã¦ãå¼·å¶çã«çµäºãã saphireãçµäºãã split -I [åºåãæåã®æ£è¦è¡¨ç¾] split æåå [åºåãæåã®æ£è¦è¡¨ç¾] æååãåºåãæåã®æ£è¦è¡¨ç¾ã§åºåã£ã¦åºåããæ¹è¡ã¨ãã¦åºåãã åºåãæåãçç¥ãããã¨\s+ã渡ããã | split [åºåãæåã®æ£è¦è¡¨ç¾] å ¥åãåãåãåºåãæåã§åºåã£ã¦åºåããæ¹è¡ã¨ãã¦åºåãã (æååãåºåãæåã§åºåã£ã¦é åã«ããï¼ -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -I ãã¤ãããå ¥åãå¾ã -m è¤æ°è¡å¯¾å¿ -i 大æåå°æåç¡è¦ -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ°ãã¾ãã >split "aaa bbb ccc" aaa bbb ccc >split "aaa,bbb,ccc" , aaa bbb ccc >print aaa bbb ccc | split aaa bbb ccc >print aaa,bbb,ccc | split , aaa bbb ccc >ls | chomp | split -f , -m | pomch main.c,test.c,Makefile,configure.in | add æåå æåå ... | add { ããã㯠} { ããã㯠} ... ãã¤ãã«æååã追å ãã -n ã¤ã³ããã¯ã¹ ã¤ã³ããã¯ã¹çªç®ã«æååã追å ãã -L è¡æ° è¡æ°ã®ã¨ããã«æååã追å ãã(0ãªã1è¡ç®) -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ°ãã¾ãã -b -nã®ã¤ã³ããã¯ã¹ããã¤ãåä½ã§æ°ãã¾ã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã > print aaa | add ccc\n aaaccc > puts abc | add -n -2 { print d } abcd > puts ã¢ã³ãã£\nã¨ãã§ã¡ã©\nã¿ãã¿ | add -L 1 @(puts ã¢ã¼ã) ã¢ã³ã㣠ã¢ã¼ã ã¨ãã§ã¡ã© ã¿ãã¿ > puts ã¢ã³ãã£\nã¨ãã§ã¡ã©\nã¿ãã¿ | add -L 1 {puts ã¢ã¼ã} ã¢ã³ã㣠ã¢ã¼ã ã¨ãã§ã¡ã© ã¿ãã¿ del del æåæ° del -n ã¤ã³ããã¯ã¹ æåæ° æåæ°åãã¤ãã®æååãæ«å°¾ããåé¤ãã -n æ«å°¾ããã§ã¯ãªãã¦ã¤ã³ããã¯ã¹ããæååãåé¤ãã -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ°ãã¾ãã -b -nã®ã¤ã³ããã¯ã¹ããã¤ãiåä½ã§æ°ãã¾ã -L è¡æ° è¡æ°è¡ãåé¤ -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã >print abcdE | del abcd >print aaa\nbbb\nccc\nddd\neee | del -L 2 2 aaa bbb eee join -I [åºåãæåå] join æåå [åºåãæåå] | join [åºåãæåå] æ¹è¡åºåãã®æååã«æååãéã«æãã§ã¤ãªãã (é åãåºåãæåãæãã§ä¸è¡ã«ããï¼ >ls saphire* | join , | del | add \n saphire,saphire.c,saphire.c.bak,saphire.h,saphire.sao,saphire.ksh,saphire.o -q åºåãæå以å¤ã«saphireã®ç¹æ®æåã«ã¯ã©ã¼ããæ½ãã¾ãã -Q åºåãæå以å¤ã«bashã®ç¹æ®æåã«ã¯ã©ã¼ããæ½ãã¾ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã >print "aaa aaa\nbbb bbb" | join -q aaa\ aaa bbb\ bbb > touch $$(print "aaa aaa\nbbb bbb" | join -q) aaa aaaã¨ãããã¡ã¤ã«ã¨bbb bbbã¨ãããã¡ã¤ã«ãä½ããã x æåå åæ° æååãåæ°ååºåãã¾ã | x åæ° ãã¤ãããã®å ¥åæååãåæ°ååºåãã¾ã > print a | x 5 | pomch aaaaa | lines è¡æ° (ãããã¯)... å ¥åããåãåãæå®ãããè¡æ°ã®è¡ã表示 ãããã¯ãããã°ãåè¡ãã³ã³ããã¹ããã¤ãã«å ¥ããã㦠ãããã¯ãå®è¡ããã -r è¡ãå転ãã¦è¡¨ç¤ºãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã è¡æ°ã«ã¯ x以å¤ã§å§ã¾ãè±å 次ã®ãããã¯ãå®è¡ããã ã æ°å ãã®è¡çªå· æ°å..æ°å ç¯å²æå® \*æ°å1+æ°å2 y = æ°å1*x + æ°å2 [x=1,2,3...] ã®yã«ãããè¡ (lines \*2+1 --> å¥æ°ã®è¡) (lines \*2 --> å¶æ°ã®è¡) +æ°åï¼ã¯çç¥ããã¨0ã¨ãªã xæ°å1+æ°å2 y = æ°å¤2ããæ°å1åãã¤å¾ã ã使ãã¾ãã +æ°å2ã¯çç¥ããã¨0ã¨ãªã è¡æ°ã®æå¾ã«bãã¤ããã¨ãããã¯ã¯æå®ãããå ¨ã¦ã®æ¯è¡ã«å¯¾ãã¦ãããã¯ãå®è¡ãã¾ãã >print aaa\nbbb\nccc | lines 0 0..1 aaa aaa bbb >puts aaa\nbbb\nccc | lines -r ccc bbb aaa >print aaa\nbbb\nccc | lines BEGIN { puts first } 0 1..0 END { puts last } first aaa bbb aaa last >print aaa\nbbb\nccc\nddd | lines 0 { | uc } 1 { | sub -g . D } 2..-1 AAA DDD ccc ddd >ls | lines 0 { | var a } 1..-1b { | var -a b } aã«ï¼è¡ç®ã bã«æå¾ã®è¡ãå ¥ãã¾ã >ls | lines 0 { | var a } 1..-1 { | var -a b } aã«ï¼è¡ç®ã bã«ï¼è¡ç®ä»¥éãå ¥ãã¾ã > times 15 { :i: ++ i; puts i } | lines x5 { | join , } 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 | select æ¡ä»¶å¼ æ¡ä»¶å¼ãæãç«ã¤å ´åãã®è¡ãåºå >print aaa\nbbb\nccc | select { | [ -re ^a ] } aaa -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã | rows æ°å¤ [-b|-B] (ãããã¯) -s æååã®ã¨ã³ã³ã¼ããSJISã¨ãã¦æ±ãã¤ã³ããã¯ã¹ãæ°ãã¾ãã -e æååã®ã¨ã³ã³ã¼ããeucjpã¨ãã¦æ±ãã¤ã³ããã¯ã¹ãæ°ãã¾ãã -w æååã®ã¨ã³ã³ã¼ããUTF8ã¨ãã¦æ±ãã¤ã³ããã¯ã¹ãæ°ãã¾ãã -r æååãéé ã«ãã¦åºåãã x以å¤ã§å§ã¾ãè±å 次ã®ãããã¯ãå®è¡ãã æ°å ãã®æåã¤ã³ããã¯ã¹ æ°å..æ°å æåã¤ã³ããã¯ã¹ç¯å² \*æ°å1+æ°å2 y = æ°å1*x + æ°å2 [x=1,2,3...] ã®yã«ãããæå +æ°å2ã¯çç¥ããã¨0ã¨ãªãã¾ãã (rows \*2+1 --> å¥æ°ã®æå) (rows \*2 --> å¶æ°ã®æå) xæ°å1+æ°å2 y = æ°å¤2ããæ°å1åãã¤å¾ã ã使ãã¾ãã +æ°å2ã¯çç¥ããã¨0ã¨ãªãã¾ãã æ°åã®æå¾ã«bãã¤ããã¨,ãããã¯ã¯æå®ãããå ¨ã¦ã®æ¯æåã«å¯¾ãã¦ãããã¯ãå®è¡ãã¾ãã ãã¤ãã§æ¸¡ãããåæåãã¨ã«ãããã¯ãå®è¡ããã ãããã¯ãç¡ããã°è¡¨ç¤ºãã > print abcdefg | rows BEGIN { puts first } 0 3 { | puts } END { puts last } first ad last > print abcdefg | rows 0 { | uc } 1..-1 { | puts } Abcdefg > print abcdefg | rows 0 { | uc } 1..-1 { | puts } Ab c d e f g > print abcdefg | rows -r |pomch gfedcba ary é åå è¦ç´ 1 è¦ç´ 2 ..... é åãåºå ary -I | ary é åå å ¥åããåè¡ãï¼è¦ç´ ã¨ãã¦é åã«ä»£å ¥(åè¡ã¯chompããã) -s é åã®ãµã¤ãºãåºåãã -nc ï¼è¡ãï¼è¦ç´ ã¨ãã¦é åã«ä»£å ¥ããå ´åchompããªã -I å ¥åãåãåãé åã®è¦ç´ ã¨ãã¦ä»£å ¥ãã -p ä»£å ¥ãã¤ã¤åºåããã -l åºåã«æ¹è¡ãã¤ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã ary_add -I é åå | ary_add é åå å ¥åããåè¡ãï¼è¦ç´ ã¨ãã¦é åã«è¿½å ãã(æ«å°¾) | ary_add -n ã¤ã³ããã¯ã¹ é åå ã¤ã³ããã¯ã¹ã®å ´æã«è¦ç´ ã追å ãã -n æ°å¤ æ°å¤ã®ã¨ããã«ã¤ã³ãµã¼ã -nc chompããªã -p åºåãè¡ã -l åºåã«æ¹è¡ãã¤ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã ary_erase é åå ã¤ã³ããã¯ã¹ -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã é åã®è¦ç´ ãåé¤ match æ£è¦è¡¨ç¾ã®æ¯è¼æ¼ç®å match -I [æ£è¦è¡¨ç¾] -> ãã¤ãå ¥åã[æ£è¦è¡¨ç¾]ã§æ¯è¼ ã³ãã³ã | match [æ£è¦è¡¨ç¾] -> ã³ãã³ãã®åºåå ¨ã¦ã[æ£è¦è¡¨ç¾]ã§æ¯è¼ match [æåå] [æ£è¦è¡¨ç¾] -> [æåå]ã[æ£è¦è¡¨ç¾]ã§æ¯è¼ ã³ãã³ã | match -L [æ£è¦è¡¨ç¾] -> grepã®æ§ã«åè¡ã«æ£è¦è¡¨ç¾ãããããããæ¯è¼ããã ã³ãã³ã | match -g [æ£è¦è¡¨ç¾] -> ã³ãã³ãã®åºåå ¨ã¦ã[æ£è¦è¡¨ç¾]ã§æ¯è¼ãããããã¦ãæ¢ã¾ããä½åº¦ãæ¯è¼ãç¹°ãè¿ã match -g [æåå] [æ£è¦è¡¨ç¾] -> [æåå]ã[æ£è¦è¡¨ç¾]ã§æ¯è¼ãããããã¦ãä½åº¦ãæ¯è¼ãç¹°ãè¿ã -q åºåããªã -nl åºåãæ¹è¡ããªã -n è¡çªå·ãã¤ãã -I ãã¤ãå ¥åããæ¯è¼ããæååãåãåããã³ãã³ãã®ï¼ã¤ç®ããã¯èªåçã«-Iãããã¨ã¿ãªã -f [æåå] ã°ã«ã¼ãåã®ãããããæååã®åºåã®åºåãã«[æåå]ã使ããããã©ã«ãã¯ã¿ã -g ã°ãã¼ãã«ãä¸æåãã¤æ¯è¼ãã -L è¡æåæ¯è¼ãä¸è¡ãã¤æ¯è¼ãããgrepã¨ä¼¼ãåããããã -i æ£è¦è¡¨ç¾ã大æåã¨å°æåãåºå¥ããªã -m è¤æ°è¡ããããã -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã PREMATCH ãããããåã®é¨å MATCH ãããããé¨å POSTMATCH ãããããå¾ã®é¨å MATCH_COUNT ãããããåæ° æ°å¤ ã°ã«ã¼ãåã§ããããããã®ãåããé çªã«å ¥ãã¾ã >ls | match -L -n minato_curses 11:minato_curses.c 12:minato_curses.o 13:minato_curses.h (è¡æå) >ls | match . A (ä¸æåãããããã以å¾æ¯è¼ããªã) >ls | match -g . A U T H O R S >print 'file:123' | match '(.+?):(\d+)' file 123 >print 'file:123' | match -f \n '(.+?):(\d+)' file 123 >print abcdef | match '..(.).(.).'; var 1 2 | join , c e c,e >puts mikan | match -f , '(m)i(kan)' m,kan matchã¯egrepã¨éã£ã¦ãããããè¡ã§ã¯ãªãã¦ãããããé¨åãåºåãã¾ãã egrepã®ããã«è¡æåã§å¦çãè¡ãããå ´åã¯-Lãã¤ãã¦ãã ããã ã¾ãã°ã«ã¼ãåããå ´åã¯ãã®ã°ã«ã¼ãåãã¦ãããããé¨åããã£ã¼ã«ãåºåãã§åºåãã¾ãã(ãã£ã¼ã«ãã®åæå¤ã¯ã¿ã) >puts "file:123" | match '(.+?):(\d+)' file 123 matchã¯ä¸è¡ãã¨ã«å¦çã¯ãã¾ãããåãåã£ãæååå ¨ã¦ã«æ¤ç´¢ãè¡ãã¾ãã(ããã©ã«ãã§ã¯æ¤ç´¢åæ°ã¯ï¼åã ãã-gã§ä½åã) ä¸è¡ãã¨ã«å¦çãããå ´åã¯eachãªã©ã¨çµã¿åããã¦ãã ãã > ls | each { | match -q -i m && | print } Makefile Makefile.in README.ja.txt autom4te.cache gmon.out.hayai gmon.out.osoi saphire_commands.c saphire_commands.o saphire_main.c saphire_main.o saphire_vm.c saphire_vm.o main.c scan æåå æ£è¦è¡¨ç¾ | scan æ£è¦è¡¨ç¾ å é¨çã«ã¯match -g ã¨åãã§ãã [æåå]ã[æ£è¦è¡¨ç¾]ã§æ¯è¼ãããããã¦ãä½åº¦ãæ¯è¼ãç¹°ãè¿ã -I ãã¤ãããæ¯è¼ããæååãåãåããã³ãã³ãã®ï¼ã¤ç®ããã¯èªåçã«-Iãããã¨ã¿ãªã -f [æåå] ã°ã«ã¼ãåã®ãããããæååã®åºåã®åºåãã«[æåå]ã使ããããã©ã«ãã¯ã¿ã -i æ£è¦è¡¨ç¾ã大æåã¨å°æåãåºå¥ããªã -m è¤æ°è¡ããããã -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã MATCH_COUNT ãããããåæ°ããã¼ã«ã«å¤æ°ã«å ¥ã æ°å¤ ã°ã«ã¼ãåã§ããããããã®ãåããé çªã«å ¥ãã¾ã >ls | scan . A U T H O R S scan æ£è¦è¡¨ç¾ { ããã㯠} ããããããã¨ã«ãããã¯ãå®è¡ããã¾ããã³ã³ããã¹ããã¤ãã«ãããããæååãå ¥ã£ã¦ã¾ãããã ãä¸æåãã¨ã«ãããã¯ãèµ·åããã®ã¯ããã©ã¼ãã³ã¹çã«ææ ¢ãªãç¡ãã¬ãã«ã ã¨æã£ã¦ãã¦ãã ããã > print aaaa123-bbb1234 | scan '\d+' { | x 2 | pomch } 123123 12341234 > cat big_file.txt | scan . { | print } åºã¾ããå¤åä¸æ¥ä¸ã MATCH_COUNT ãããããåæ°ãå ¥ããã¼ã«ã«å¤æ° erase æåå æ£è¦è¡¨ç¾ | erase æ£è¦è¡¨ç¾ æ£è¦è¡¨ç¾ã«ãããããé¨åãæååããåé¤ãã ã°ã«ã¼ãåããå ´åã¯ãããããé¨åã®ãã¡ã°ã«ã¼ãåãããé¨åã ãæååãåé¤ãã -g ä½åº¦ãæ£è¦è¡¨ç¾ãç¹°ãè¿ã -m è¤æ°è¡å¯¾å¿ -i 大æåå°æåç¡è¦ -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã > erase abcdefg\n . bcdefg > erase abcdefg\n '.$' abcdef > puts abcdefg | erase '(.).(.)$' abcdf sub æåå æ£è¦è¡¨ç¾ å¤æå¾ã®æåå | sub æ£è¦è¡¨ç¾ å¤æå¾ã®æåå subã¯æååã®å¤æãè¡ãã¾ãã >ls saphire_vm.c saphire_vm.o libsaphire.so libsaphire.so.1 libsaphire.so.1.0 main.c readline.c readline.o >ls | sub a A sAphire_vm.c saphire_vm.o libsaphire.so libsaphire.so.1 libsaphire.so.1.0 main.c readline.c readline.o >ls | each{ | sub a A } sAphire_vm.c sAphire_vm.o libsAphire.so libsAphire.so.1 libsAphire.so.1.0 mAin.c reAdline.c reAdline.o > sub -g aaa a x | pomch xxx ã°ã«ã¼ãåããæååã¯\1,\2,...ã«å ¥ãã¾ããå¤æå¾ã®æåå㧠\1,\2ã使ãã¨ã°ã«ã¼ãåããæååãå ¥ãã¾ãã å¤æå¾ã®æååã«\èªèº«ã使ãããå ´åã¯\\ã使ã£ã¦ãã ãã > print mikan | sub '(.)i(...)' '\1\2' mkan å¤æã¯ä¸åããè¡ãã¾ããã-gãã¤ããã¨ä½åãè¡ã£ã¦ããã¾ãã -g ã°ãã¼ãã«ãä¸è¡ã«äºåº¦ä»¥ä¸ããããã¦ããããï¼åº¦ä»¥ä¸å¤æãè¡ãã¾ã -q åºåã表示ããªã -i 大æåã¨å°æåãåºå¥ããªã -m è¡ãã¾ããã æ£è¦è¡¨ç¾ -c å¤æåã«ãã§ãã¯ãã -s sjisã¨ã³ã³ã¼ãã¨ãã¦å¦ç -e eucjpã¨ã³ã³ã¼ãã¨ãã¦å¦ç -w utf8ã¨ã³ã³ã¼ãã¨ãã¦å¦ç -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã ãããããåæ°ã¯ãã¼ã«ã«å¤æ°SUB_COUNTã«å ¥ãã¾ãã sub æ£è¦è¡¨ç¾ { ããã㯠} ãããããæååãã³ã³ããã¹ããã¤ãã«ããã¦ãããããå°ç¹ã§ãããã¯ãå®è¡ãã¾ããåºåãå¤æçµæã¨ãªãã¾ãã > print abcdb | sub -g b { | uc } | pomch aBcdB sub æ£è¦è¡¨ç¾(ã°ã«ã¼ãå) { ããã㯠} ãããããæååãã³ã³ããã¹ããã¤ãã«ããã¦ãããããå°ç¹ã§ãããã¯ãå®è¡ãã¾ããåºåãå¤æçµæã¨ãªãã¾ããã°ã«ã¼ãåããæååã¯ãã¼ã«ã«å¤æ°ã«å ¥ã£ã¦ã¾ãã > print abcdbcgg | sub -g '(.)(.)' { var a b | join , | chomp } | pomch a,bc,db,cg,g read -a ãã¹ã¦ãèªã¿è¾¼ã -n æ°å æ°åè¡èªã¿è¾¼ã -p èªã¿è¾¼ãã§ãèªã¿è¾¼ãã åã®ãããã¡ãæ¶ããªã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã readã¯ã³ã³ããã¹ãã«å¿ããå ¥åããä¸è¡èªã¿è¾¼ããããä¸åº¦èªã¿è¾¼ãã¨ç¶ãããèªã¿è¾¼ããå ¨ã¦ãèªã¿è¾¼ãã¨ãªã¿ã¼ã³ã³ã¼ã1ãè¿ãã > puts aaa\nbbbb | read aaa > puts aaa\nbbb | (read | chomp | add D\n; read | chomp | add E\n) aaaD bbbE > puts aaa\nbbb | read -a aaa bbb > puts aaa\nbbb\nccc\neee\nfff | (read; read -n 2 | cat -n; read -a) aaa 1 bbb 2 ccc eee fff > puts aaa\nbbb\nccc | (read -a -p; read -a -p) aaa bbb ccc aaa bbb ccc read ãã¡ã¤ã«å ãã¡ã¤ã«åã®ãã¡ã¤ã«ããä¸è¡èªã¿è¾¼ãã EOFã«éããã¨1ãè¿ãcloseãããã ãã¡ã¤ã«ã¯saphireã®çµäºæã«closeããã closeã³ãã³ãã§éãããã¨ãã§ãã -n æ°å¤ æ°å¤è¡èªã¿è¾¼ã -a å ¨ã¦èªã¿è¾¼ã close ãã¡ã¤ã«å close -a readã§éãããã¡ã¤ã«ãéãã -aã¯éãããã¡ã¤ã«å ¨ã¦ãéãã cd ãã£ã¬ã¯ã㪠ãã£ã¬ã¯ããªã«ç§»åãããPWDã«ç¾å¨ã®ã«ã¬ã³ããã£ã¬ã¯ããªãå ¥ã cdã ãã ã¨HOMEã«ç§»åãã | selector å ¥åããèªã¿è¾¼ãã ããã¹ãããã¦ã¼ã¶ã¼ãä¸è¡ã¾ãã¯è¤æ°è¡é¸æãã¦é¸æããè¡ãåºåãã ENTERã§æ±ºå® SPACEã§è¤æ°é¸æ aã§å ¨ãã¼ã¯å転 ãã¼ã¿ã®ã¨ã³ã³ã¼ãã£ã³ã°ã¯UTF8ã®ã¿ãã対å¿ãã¦ãã¾ããã -r ååã®ã«ã¼ã½ã«ä½ç½®ãã¹ã¯ãã¼ã«ãããä½ç½®ã使ç¨ããã -c ã«ã¼ã½ã«ä½ç½® ã«ã¼ã½ã«ä½ç½®ãè¨å®ãã -t ã¹ã¯ãã¼ã«ãããä½ç½® ã¹ã¯ãã¼ã«ãããä½ç½®ãè¨å®ãã -m è¤æ°è¡ã®é¸æã許ããã¹ãã¼ã¹ã§è¤æ°è¡é¸æã§ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã max æ°å¤1 æ°å¤2 大ããã»ãã®æ°å¤ãåºåãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã min æ°å¤1 æ°å¤2 å°ããã»ãã®æ°å¤ãåºåãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã extname ãã¡ã¤ã«å -I å ¥åããã¤ãããåãä»ãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã æ¡å¼µåãåºåãã parentname ãã¡ã¤ã«å -I å ¥åããã¤ãããåãä»ãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã ãã£ã¬ã¯ããªåã®ã¿åºåãã noextname ãã¡ã¤ã«å -I å ¥åããã¤ãããåãä»ãã -nl åºåã®æå¾ã«æ¹è¡ãå ããªã æ¡å¼µå以å¤ã®ãã¡ã¤ã«åãåºåãã raise ã¡ãã»ã¼ã¸ ã¡ãã»ã¼ã¸ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã«å ¥ãã¦å®è¡ãåæ¢ãã hash é£æ³é åå ãã¼1 ãã¼2 ... é£æ³é åã®å 容ãåºåãã ãã¼ãç¡ããã°å ¨ã¦åºåãã | hash é£æ³é åå hash -I é£æ³é åå -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã -p ä»£å ¥ãã¤ã¤åºåããã ãã¤ãå ¥åããé£æ³é åã®ãã¼ã¿ãåãåã£ã¦é£æ³é åãä½ã > split "key value key2 value2 key3 value3" | hash a > hash a key value | hash_add é£æ³é åå > split "key value" | hash_add a é£æ³é åã«ãã¼ã¿ã追å ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã -p ä»£å ¥ãã¤ã¤åºåããã hash_erase é£æ³é åå ãã¼ -l ãã¼ã«ã«å¤æ°ã¨ãã¦æ±ã é£æ³é åã®è¦ç´ ãåé¤ãã sweep å ¨ã¦ã®ã°ãã¼ãã«å¤æ°ãé£æ³é åãé åããªãã¸ã§ã¯ãããã¤ã³ã¿ã¼ãæ¶ã ã¯ã©ã¹å ã§ã¯ãªãã¸ã§ã¯ãã®å±æ§ãæ¶ã -reg æ£è¦è¡¨ç¾ã®ãã£ãã·ã¥ãæ¶ã -f é¢æ°å®ç¾©ãã¯ãªã¢ãã -c ã¯ã©ã¹å®ç¾©ãã¯ãªã¢ãã -gp ã°ãã¼ãã«ãã¤ãã®å 容ãæ¶ã -g ã°ãã¼ãã«ã®å®ç¾©ãæ¶ã å¼æ°ã«å¤æ°åãæ¸ãã¨ãã®å¤æ°ã ãæ¶ã sweep A # A ã ãæ¶ã show å ¨ã¦ã®ã°ãã¼ãã«å¤æ°ãé£æ³é åãé åã®å®ç¾©æ å ±ãè¦ã ãªãã¸ã§ã¯ãå ã§ã¯å±æ§ãè¦ãã -v ã°ãã¼ãã«å¤æ°ã®å¤ã表示ãã -g ãªãã¸ã§ã¯ãå ã§ãã°ãã¼ãã«ã®å®ç¾©æ å ±ãè¦ã printf ãã©ã¼ããã å¼æ°1 å¼æ°2 ... | printf ãã©ã¼ããã -l æ¹è¡ãæå¾ã«åºåãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã ãã©ã¼ãããã¯Cè¨èªã¨åãã§ãã > printf "%10s,%10s\n" abcdefg abcdefg abcdefg, abcdefg > ls | printf "[%s], [%s], [%s]\n[%s], [%s], [%s]\n" [AUTHORS], [saphire_commands.c], [saphire_curses.c] [saphire_debug.c], [saphire_extra.c], [saphire_hash.c] é åããã¤ãããåãåãã¨ããããã®è¦ç´ ãå¼æ°ã¨ãªã | ssort | ssort ããã㯠ä¸è¡ãã¨ã®ã½ã¼ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã ãããã¯ãçç¥ãã㨠{ | var a b; [ $(var a) -slt $(var b) ] }ã渡ããã ã³ã³ããã¹ããã¤ãã®ä¸è¡ç®ã«å·¦ã®ä¸è¡ãå ¥ã£ã¦ãã ã³ã³ããã¹ããã¤ãã®äºè¡ç®ã«å³ã®ä¸è¡ãå ¥ã£ã¦ãã > ls | ssort > ls | ssort { |var a b; [ $(var a) -slt $(var b) ] } lsã®åºåãè¡ãã¨ã«æé ã«ä¸¦ã³æ¿ãã > ls | ssort { |var a b; [ $(var a) -sgt $(var b) ] } lsã®åºåãè¡ãã¨ã«éé ã«ä¸¦ã³æ¿ãã > ary ARGV | ssort { | var a b ;[ $(var a) -slt $(var b) ] } | ary ARGV2 ARGVãæé ã«ã½ã¼ããã¦ARGV2ã«ä»£å ¥ > ls -al | ssort { | each { | split | lines 4 } | var a b; [ $(var a) -lt $(var b) ] } ï¼ãã£ã¼ã«ãç®ã§ã½ã¼ã ++ ãã¼ã«ã«å¤æ°å ãã¼ã«ã«å¤æ°ã®å¤ãï¼å¢ãã ãã¼ã«ã«å¤æ°ãåå¨ããªããã°ï¼ãå ¥ã£ããã¼ã«ã«å¤æ°ãä½æãã | ++ ãã¤ãããå ¥åãåãåã1å¢ããã¦åºåãã -- ãã¼ã«ã«å¤æ°å ãã¼ã«ã«å¤æ°ã®å¤ãï¼æ¸ãã ãã¼ã«ã«å¤æ°ãåå¨ããªããã°ã¼ï¼ãå ¥ã£ããã¼ã«ã«å¤æ°ãä½æãã | -- ãã¤ãããå ¥åãåãåã1æ¸ããã¦åºåãã | + æ°å ãã¤ãããå ¥åãåãåãæ°åã§å ç®ãã¦åºåãã | - æ°å ãã¤ãããå ¥åãåãåãæ°åã§æ¸ç®ãã¦åºåãã | \* æ°å ãã¤ãããå ¥åãåãåãæ°åã§ä¹ç®ãã¦åºåãã | / æ°å ãã¤ãããå ¥åãåãåãæ°åã§é¤ç®ãã¦åºåãã | mod æ°å ãã¤ãããå ¥åãåãåãæ°åã§é¤ç®ãã¦ãä½ããåºåãã | pow æ°å ãã¤ãããå ¥åãåãåãæ°åä¹ãã¦åºåãã range æ°åï¼ æ°åï¼ æ°åï¼ããæ°åï¼ã¾ã§ã®ç¯å²ã®æ°åãä½æ > range 1 5 1 2 3 4 5 pcat ããã㯠ããã㯠.... è¤æ°ã®ãããã¯ã®åºåçµæããã¤ãã«æµã > pcat { echo aaa } { puts bbb } | less aaa bbb | ptee ããã㯠ããã㯠.... ãã¤ãã§åãåã£ãå ¥åãè¤æ°ã®ãããã¯ã«æ¸¡ã åãåã£ããã¼ã¿ã¯ã³ã³ããã¹ããã¤ãã«å ¥ã£ã¦ãã¾ã >puts aaa | ptee { | cat } { | print } { | sub -g a b } aaa aaa bbb ãã¹ããå¯è½ > puts aaa | ptee { | cat } { | ptee { | print } { | print } } | less aaa aaa aaa return æ°å¤ 第ä¸å¼æ°ãçµäºã³ã¼ãã¨ãã¦é¢æ°ãã復帰ãã æ°å¤ãçç¥ããã¨çµäºã³ã¼ãã0ã¨ãªã each { block } æ¯è¡ã«ä¸åãããã¯ãå®è¡ãããã³ã³ããã¹ããã¤ãã«ãã®è¡ãå ¥ã£ã¦ãã >ls | each { | print } main.c sub.c ãããã¯ã«å¼æ°ãæããã¨è¡çªå·ãå¾ããã¾ãã > ls | each { :i: | print | add -n 0 $(var i) } 0:main.c 1:sub.c -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã foreach æåå...æåå ããã㯠並ã¹ãããæååæ¯ã«ãããã¯ãå®è¡ãããæååã¯ã³ã³ããã¹ããã¤ãã«å ¥ã£ã¦ããã >foreach a b c { | pomch } a b c >print a\nb\nc | ary A >foreach $(ary A | join " ") { | pomch } a b c >print a\nb\nc | ary A >foreach @@(ary A) { | pomch } a b c | p ãããã°ç¨ã®ä½ãããªããã£ã«ã¿ã ãã¤ãã®å 容ãè¦ããã¨ãã§ãã¾ãã ãã¼ã¿ã®ã¨ã³ã³ã¼ãã£ã³ã°ã¯UTF8ãã対å¿ãã¦ãã¾ããã SPACE, RETURNãæ¼ãããã次ã®ã³ãã³ãã«ãã¼ã¿ãæµãã¾ãã ESCAPE, CTRL-C, qãæ¼ããããã¨ã©ã¼ãåºãã¦å¦çãæ¢ãã¾ã -c ã«ã¼ã½ã«ä½ç½® ã«ã¼ã½ã«ä½ç½®ãè¨å®ãã -t ã¹ã¯ãã¼ã«ãããä½ç½® ã¹ã¯ãã¼ã«ãããä½ç½®ãè¨å®ãã -Lu æ¹è¡ã³ã¼ããLFã¨ãã¦æ±ã -Lm æ¹è¡ã³ã¼ããCRã¨ãã¦æ±ã -Lw æ¹è¡ã³ã¼ããCRLFã¨ãã¦æ±ã -La æ¹è¡ã³ã¼ãã\aã¨ãã¦æ±ã envspace ç°å¢å¤æ°å=å¤ ç°å¢å¤æ°å2=å¤2 ... { ããã㯠} ç°å¢å¤æ°ãä¸æçã«å¤ãè¨å®ãã¦ãããã¯ãå®è¡ã > envspace LANG=c { date } LANG=cã§ã®dateã®å®è¡çµæ quote æåå | quote ç¹æ®æååã«ã¯ã©ã¼ããæ½ãã¦åºåãã¾ãã -b bashã§ã®ç¹æ®æååãã¯ã©ã¼ããã > puts $$(print "<>" | quote) <> self é¢æ°ãã¯ã©ã¹ã®å®è¡ç¶æ³ãåããã¾ãã Running Function Info ã®inputã¯ãã¤ããããã¼ã¿ãåãã¦ãããåãã¦ããªããã¨ããæå³ã§ãã def é¢æ°ãå®ç¾©ãã -a [å¼æ°] å¼æ°ãè¨å®ãã -A å¼æ°ã®æ å ±ãåºåãå ¥åããã > print "puts a" | def fun > print _ARGV | def -A fun # å¼æ°æ å ±ãè¨å® > def fun puts a > def -A fun _ARGV > fun a > def fun { puts b } > fun b class ã¯ã©ã¹ãå®ç¾©ãã > print "puts yes; puts yes" | class a > a a yes yes > class a puts yes; puts yes > class b { puts b } > b b b fselector ãã¡ã¤ã«ãé¸æãã¦é¸æããããã¡ã¤ã«ãåºåããã -m è¤æ°é¸æå¯ ãã¡ã¤ã«é¸æã¡ãã¥ã¼ã§ã®æä½ã¯ SPACE ãã¡ã¤ã«é¸æ TAB,W é¸æãããã¡ã¤ã«ãã³ãã³ãã©ã¤ã³ã«æ¿å ¥ BackSpace 親ãã£ã¬ã¯ããªã«ç§»å Return ãã£ã¬ã¯ããªé¸ææãã®ãã£ã¬ã¯ããªã«ç§»å saphireã¤ã³ã¿ã©ã¯ãã£ãã·ã§ã«ã§æå¹ãªã³ãã³ã history ã³ãã³ãã©ã¤ã³ãã¹ããªã¼ã®ä¸è¦§ãåºåãã add_history å¼æ°ä¸ã¤ããã¤ãããä¸è¡åã£ã¦ã³ãã³ãã©ã¤ã³ãã¹ããªã¼ã«è¿½å ã write_history ã¡ã¢ãªä¸ã®ãã¹ããªã¼ããã¡ã¤ã«ã«æ¸ãè¾¼ã read_history ãã¡ã¤ã«ã®ãã¹ããªã¼ãã¡ã¢ãªã«èªã¿è¾¼ã clear_history ãã¹ããªã¼ãã¯ãªã¢ remove_history (æ°å¤) å¼æ°ã®ã¤ã³ããã¯ã¹ã®ãã¹ããªã¼ãåé¤ saphire.saã§å®ç¾©ããã¦ããã¦ã¼ã¶ã¼é¢æ° shift ããã㯠ä¸è¡ç®ãã³ã³ããã¹ããã¤ãã«å ¥ãã¦ãããã¯ãå®è¡ããã®ä»ãåºå times åæ° ããã㯠åæ°åãããã¯ãå®è¡ãã¾ã ã³ã³ããã¹ããã¤ãã«åæ°ã®ãã¼ã¿ãå ¥ãã¾ãã > times 3 { | pomch } 0 1 2 step åæå¤ çµäºå¤ å¢å ããã㯠>step 3 10 3 { | pomch } 3 6 9 shelp 使ãæ¹ãè¦ã smake makeã®å®è¡çµæããä¸è¡é¸ãã§ããã®è¡ãã¨ãã£ãã¿ã¼ã§èµ·åãã sgrep grepã®å®è¡çµæããä¸è¡é¸ãã§ããã®è¡ãã¨ãã£ãã¿ã¼ã§èµ·åãã case value regex1 block1 regex2 block2... >a=1; case $(var a) 0 { puts a } 1 { puts b } 2 { puts c } 3 { puts d } b for å¤æ° in æåå æåå.... ããã㯠並ã¹ãããæååãã²ã¨ã¤ãã¤å¤æ°ã«å ¥ãã¦ãããã¯ãå®è¡ããã >for a in a b c { puts @(var a) } a b c >print a\nb\nc | ary A >for a in $(ary A | join " ") { puts @(var a) } a b c >print a\nb\nc | ary A >for a in @@(ary A) { puts @(var a) } a b c time { ããã㯠} ãããã¯ã®å®è¡æéã測ã jump ç»é²ããããã£ã¬ã¯ããªã¸ç§»å(~/.saphire/jump) menu ç»é²ãããã³ãã³ããå®è¡(~/.saphire/menu) ãµã³ãã«ã¹ã¯ãªãã å§åã®é転 cat data | each { | split | lines 1 0 | printf "%s:%s" }