逆引きシェルスクリプト/シェルスクリプトで文字列操作のleft, rightを作ってみた
の編集
Top
/
逆引きシェルスクリプト
/
シェルスクリプトで文字列操作のleft, rightを作ってみた
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * シェルスクリプトで文字列操作のleft, rightを作ってみた [#w4176aa4] 左から何文字のleft, 右から何文字のrigth関数を作ってみました。~ VisualBasicやVBAなどのLEFT, RIGHT関数と同様な動作になります。~ 尚、動作確認はUbuntu10.04で行いました。シェルはbashを利用しています。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * left, rightのサンプルスクリプト [#t2547155] 本シェルスクリプトを利用して直接的および間接的障害が生じても一切責任を負いません。~ 自己責任のもとで本スクリプトをご利用ください。 ダウンロード:&ref(left_right.sh); #!/bin/bash #------------------------------ # isnum $1 #------------------------------ function isnum { if [ $# -ne 1 ]; then echo "[ERROR] isnum : invalid argument" 1>&2 # output stderr return 1 fi echo $1 | egrep '^[0-9]+$' > /dev/null 2>&1 if [ $? -eq 0 ]; then return 0 fi return 1 } #------------------------------ # left string length #------------------------------ function left { # $1 : string # $2 : length if [ $# -ne 2 ]; then echo "[ERROR] left $* : invalid argument" 1>&2 # output stderr return 1 else isnum $2 if [ $? -ne 0 ]; then echo "[ERROR] left $* : invalid argument" 1>&2 # output stderr return 1 fi if [ `expr length $1` -le $2 ]; then echo $1 return 0 fi expr substr $1 1 $2 return 0 fi } #------------------------------ # right string length #------------------------------ function rigth { # $1 : string # $2 : length if [ $# -ne 2 ]; then echo "[ERROR] right $* : invalid argument" 1>&2 # output stderr return 1 else isnum $2 if [ $? -ne 0 ]; then echo "[ERROR] right $* : invalid argument" 1>&2 # output stderr return 1 fi if [ `expr length $1` -le $2 ]; then echo $1 return 0 fi l=`expr length $1` p=`expr $l - $2 + 1` expr substr $1 $p $2 return 0 fi } #------------------------------ # TEST #------------------------------ left HelloWorld 5 rigth HelloWorld 5 上記のスクリプトでは、以下の関数を定義しています。 |function|説明| |isnum|数値かどうかをチェックする(負の値はサポートしていません)&br;egrepを利用して正規表現で数値かどうかをチェックしています。| |left|文字列と抽出する文字数を指定すると左から指定した抽出文字数分取得します。| |right|文字列と抽出する文字数を指定すると右から指定した抽出文字数分取得します。| * 実行結果 [#je2b2be0] TESTとコメントしてある部分にleft, rigth関数を呼び出す例を記述してあります。 #------------------------------ # TEST #------------------------------ left HelloWorld 5 rigth HelloWorld 5 -実行結果 sakura@ubuntu:~$ chmod +x left_right.sh sakura@ubuntu:~$ ./left_right.sh Hello World #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * シェルスクリプトで文字列操作のleft, rightを作ってみた [#w4176aa4] 左から何文字のleft, 右から何文字のrigth関数を作ってみました。~ VisualBasicやVBAなどのLEFT, RIGHT関数と同様な動作になります。~ 尚、動作確認はUbuntu10.04で行いました。シェルはbashを利用しています。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * left, rightのサンプルスクリプト [#t2547155] 本シェルスクリプトを利用して直接的および間接的障害が生じても一切責任を負いません。~ 自己責任のもとで本スクリプトをご利用ください。 ダウンロード:&ref(left_right.sh); #!/bin/bash #------------------------------ # isnum $1 #------------------------------ function isnum { if [ $# -ne 1 ]; then echo "[ERROR] isnum : invalid argument" 1>&2 # output stderr return 1 fi echo $1 | egrep '^[0-9]+$' > /dev/null 2>&1 if [ $? -eq 0 ]; then return 0 fi return 1 } #------------------------------ # left string length #------------------------------ function left { # $1 : string # $2 : length if [ $# -ne 2 ]; then echo "[ERROR] left $* : invalid argument" 1>&2 # output stderr return 1 else isnum $2 if [ $? -ne 0 ]; then echo "[ERROR] left $* : invalid argument" 1>&2 # output stderr return 1 fi if [ `expr length $1` -le $2 ]; then echo $1 return 0 fi expr substr $1 1 $2 return 0 fi } #------------------------------ # right string length #------------------------------ function rigth { # $1 : string # $2 : length if [ $# -ne 2 ]; then echo "[ERROR] right $* : invalid argument" 1>&2 # output stderr return 1 else isnum $2 if [ $? -ne 0 ]; then echo "[ERROR] right $* : invalid argument" 1>&2 # output stderr return 1 fi if [ `expr length $1` -le $2 ]; then echo $1 return 0 fi l=`expr length $1` p=`expr $l - $2 + 1` expr substr $1 $p $2 return 0 fi } #------------------------------ # TEST #------------------------------ left HelloWorld 5 rigth HelloWorld 5 上記のスクリプトでは、以下の関数を定義しています。 |function|説明| |isnum|数値かどうかをチェックする(負の値はサポートしていません)&br;egrepを利用して正規表現で数値かどうかをチェックしています。| |left|文字列と抽出する文字数を指定すると左から指定した抽出文字数分取得します。| |right|文字列と抽出する文字数を指定すると右から指定した抽出文字数分取得します。| * 実行結果 [#je2b2be0] TESTとコメントしてある部分にleft, rigth関数を呼び出す例を記述してあります。 #------------------------------ # TEST #------------------------------ left HelloWorld 5 rigth HelloWorld 5 -実行結果 sakura@ubuntu:~$ chmod +x left_right.sh sakura@ubuntu:~$ ./left_right.sh Hello World #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する
添付ファイル:
left_right.sh
461件
[
詳細
]