逆引きシェルスクリプト/シェルスクリプトで文字列操作のleft, rightを作ってみた
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* シェルスクリプトで文字列操作のleft, rightを作ってみた [...
左から何文字の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 # outpu...
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 # out...
return 1
else
isnum $2
if [ $? -ne 0 ]; then
echo "[ERROR] left $* : invalid argument" 1>&2 # o...
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 # ou...
return 1
else
isnum $2
if [ $? -ne 0 ]; then
echo "[ERROR] right $* : invalid argument" 1>&2 # ...
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|数値かどうかをチェックする(負の値はサポートしてい...
|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を作ってみた [...
左から何文字の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 # outpu...
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 # out...
return 1
else
isnum $2
if [ $? -ne 0 ]; then
echo "[ERROR] left $* : invalid argument" 1>&2 # o...
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 # ou...
return 1
else
isnum $2
if [ $? -ne 0 ]; then
echo "[ERROR] right $* : invalid argument" 1>&2 # ...
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|数値かどうかをチェックする(負の値はサポートしてい...
|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)
ページ名: