文字列の抽出 ― 2017年05月06日 07:28
文字列の抽出
一応、cutコマンドを使って、dialogからゲットした日付を加工する。
#!/bin/bash
HIDUKE=$(dialog --calendar hoge 0 0 3>&1 1>&2 2>&3)
if [ $? -eq 0 ]
then
echo "get " $HIDUKE
else
echo "no get"
fi
echo -n date: ; echo $HIDUKE | cut -c 1-2
echo -n month: ; echo $HIDUKE | cut -c 4-5
echo -n year: ; echo $HIDUKE | cut -c 7-10
キタネエなあ・・・。
まあいい。
せっかく変数に入れたんだから、パラメータ展開というのをやってみようと思った。
(パラメータ展開を利用して部分文字列を取得する。)
http://qiita.com/koara-local/items/04d3efd1031ea62d8db5
「オフセットと長さを指定して文字列を取得する
指定方法
${パラメータ:オフセット:長さ}
部分文字列抽出
#!/bin/bash
HOGE="abcdef"
# オフセット位置から長さ分を取得
echo ${HOGE:0:2}
# -> ab
echo ${HOGE:2:2}
# -> cd
echo ${HOGE:4:2}
# -> ef
# 長さを省略した場合はオフセットから最後まで出力
echo ${HOGE:2}
# -> cdef
# 長さにマイナスを指定した場合は最後からマイナス分引いた位置までの長さになる
echo ${HOGE:0:-2}
# -> abcd
# オフセットの位置にマイナスを指定した場合は文法として別のパラメータ展開になる(デフォルト値の指定)
# 指定した変数が空文字列の場合は右に指定した文字が入る
echo ${HOGE:-2}
# -> abcdef
HOGE=
echo ${HOGE:-2}
# -> 2 」
というわけで、若干加工する。
#!/bin/bash
HIDUKE=$(dialog --calendar hoge 0 0 3>&1 1>&2 2>&3)
if [ $? -eq 0 ]
then
echo "get " $HIDUKE
else
echo "no get"
fi
echo date:${HIDUKE:0:2}
echo month:${HIDUKE:3:2}
echo year:${HIDUKE:6:4}
まあ、こんなもんか。
シェルスクリプトは、長大な処理を長々と書くのには向かない。
コマンドを繋げて、取り込んだファイルやデータを分岐させたり繰り返したりして加工しながら、何らかの成果物を得て、終了すべきツールだ。
基本的に、外部からの入力を受け付けて何かするという処理じゃあない。
それは、シェルスクリプトを使う側が、スクリプトの中にカキコすればいいわけだ。
バッチファイルだからな。
それでも、人様に使っていただくテキストベースの仕掛けを書かなければならないとしたら、なかなか便利な仕組みには違いない。
カレンダー表示とかが出ると、ちょっとなごみ系になる(そうかあ?)。
なんか、少し、やる気が出てきたような気がするな・・・。
一応、cutコマンドを使って、dialogからゲットした日付を加工する。
#!/bin/bash
HIDUKE=$(dialog --calendar hoge 0 0 3>&1 1>&2 2>&3)
if [ $? -eq 0 ]
then
echo "get " $HIDUKE
else
echo "no get"
fi
echo -n date: ; echo $HIDUKE | cut -c 1-2
echo -n month: ; echo $HIDUKE | cut -c 4-5
echo -n year: ; echo $HIDUKE | cut -c 7-10
キタネエなあ・・・。
まあいい。
せっかく変数に入れたんだから、パラメータ展開というのをやってみようと思った。
(パラメータ展開を利用して部分文字列を取得する。)
http://qiita.com/koara-local/items/04d3efd1031ea62d8db5
「オフセットと長さを指定して文字列を取得する
指定方法
${パラメータ:オフセット:長さ}
部分文字列抽出
#!/bin/bash
HOGE="abcdef"
# オフセット位置から長さ分を取得
echo ${HOGE:0:2}
# -> ab
echo ${HOGE:2:2}
# -> cd
echo ${HOGE:4:2}
# -> ef
# 長さを省略した場合はオフセットから最後まで出力
echo ${HOGE:2}
# -> cdef
# 長さにマイナスを指定した場合は最後からマイナス分引いた位置までの長さになる
echo ${HOGE:0:-2}
# -> abcd
# オフセットの位置にマイナスを指定した場合は文法として別のパラメータ展開になる(デフォルト値の指定)
# 指定した変数が空文字列の場合は右に指定した文字が入る
echo ${HOGE:-2}
# -> abcdef
HOGE=
echo ${HOGE:-2}
# -> 2 」
というわけで、若干加工する。
#!/bin/bash
HIDUKE=$(dialog --calendar hoge 0 0 3>&1 1>&2 2>&3)
if [ $? -eq 0 ]
then
echo "get " $HIDUKE
else
echo "no get"
fi
echo date:${HIDUKE:0:2}
echo month:${HIDUKE:3:2}
echo year:${HIDUKE:6:4}
まあ、こんなもんか。
シェルスクリプトは、長大な処理を長々と書くのには向かない。
コマンドを繋げて、取り込んだファイルやデータを分岐させたり繰り返したりして加工しながら、何らかの成果物を得て、終了すべきツールだ。
基本的に、外部からの入力を受け付けて何かするという処理じゃあない。
それは、シェルスクリプトを使う側が、スクリプトの中にカキコすればいいわけだ。
バッチファイルだからな。
それでも、人様に使っていただくテキストベースの仕掛けを書かなければならないとしたら、なかなか便利な仕組みには違いない。
カレンダー表示とかが出ると、ちょっとなごみ系になる(そうかあ?)。
なんか、少し、やる気が出てきたような気がするな・・・。
CAPCLIP ― 2017年05月06日 23:50
CAPCLIP
2年ほど前に発売されたブルートゥースマウスだ。
秋葉原に行って、ゲットした。
他のマウスを探しに行ったんだが、偶然見つけて衝動買いに走った。
ソフマップでポイント使って、合計で2600円くらいだったような。
ガジェットで充電しながらマウスを使いたい時に、マイクロUSBポートが1つしかないとどちらにするか悩むわけだ。
まあ、操作対象が複数あるから、残タン(じゃない、電池の残量)見ながら、ガジェットを切り替えていけばいいんだが、さすがに面倒になった。
で、欲しくなったのがブルートゥースマウスというわけだな。
キーボードは、無線のを使っているので、不自由はない。
小さめのブルートゥースマウスなら何でもよかったんだが、携帯性を考えて、使いやすさは犠牲にする。
バッグの中に入れて、持ち運びがしやすいのがいい。
まあ、考えてみれば、その状況下では充電しながら使うことはないから、マイクロUSBポートに接続する有線マウスでも良かったんだがな。
どーせ、使いやすさ優先の機種を、もう一つ買うことになるんだろう。
まあいい。
(Bluetooth®ワイヤレスマウス“CAPCLIP”M-CC1BRシリーズ M-CC1BRBU)
http://www2.elecom.co.jp/products/M-CC1BRBU.html
「※ご使用いただくうちに、汗や油によってマウスのラバー部分に白い粉のようなものが現れることがございます。
こまめにお手入れをしてお使いください。」
「充電可能回数 約500回」
そう、内蔵リチウムイオン電池で駆動される。
軽いことも重要だな。
スイッチ切って、再接続するまでの時間が短いのも美点だ。
在庫がピンクとブルーしかなく、浮沈子はブルーを買ったが、イエローとかホワイトがいいかも。
ケースにも、色がちゃんとついているというのが芸の細かいところだ。
ブラック出したり、透明のを出せば受けると思うんだがな。
ゴムの胴巻きとぺなぺなの蓋を何とかしてもらいたいんだが、胴巻きの方は、ケースに収納したときの滑り止めになっているし、蓋はコスト削減でどうしようもないんだろう。
使用感はサイテーだ。
それを追求したわけじゃないから仕方ないが、許容範囲を超えている。
長時間の使用にはとても耐えられそうもない。
こういうものは、ギミックで選んではいけないということだな。
1200カウントの分解能に不足はない。
要は、手に馴染まないというだけの話だ。
このアイテムを使って、心身症にでもなったら、また報告する。
2年ほど前に発売されたブルートゥースマウスだ。
秋葉原に行って、ゲットした。
他のマウスを探しに行ったんだが、偶然見つけて衝動買いに走った。
ソフマップでポイント使って、合計で2600円くらいだったような。
ガジェットで充電しながらマウスを使いたい時に、マイクロUSBポートが1つしかないとどちらにするか悩むわけだ。
まあ、操作対象が複数あるから、残タン(じゃない、電池の残量)見ながら、ガジェットを切り替えていけばいいんだが、さすがに面倒になった。
で、欲しくなったのがブルートゥースマウスというわけだな。
キーボードは、無線のを使っているので、不自由はない。
小さめのブルートゥースマウスなら何でもよかったんだが、携帯性を考えて、使いやすさは犠牲にする。
バッグの中に入れて、持ち運びがしやすいのがいい。
まあ、考えてみれば、その状況下では充電しながら使うことはないから、マイクロUSBポートに接続する有線マウスでも良かったんだがな。
どーせ、使いやすさ優先の機種を、もう一つ買うことになるんだろう。
まあいい。
(Bluetooth®ワイヤレスマウス“CAPCLIP”M-CC1BRシリーズ M-CC1BRBU)
http://www2.elecom.co.jp/products/M-CC1BRBU.html
「※ご使用いただくうちに、汗や油によってマウスのラバー部分に白い粉のようなものが現れることがございます。
こまめにお手入れをしてお使いください。」
「充電可能回数 約500回」
そう、内蔵リチウムイオン電池で駆動される。
軽いことも重要だな。
スイッチ切って、再接続するまでの時間が短いのも美点だ。
在庫がピンクとブルーしかなく、浮沈子はブルーを買ったが、イエローとかホワイトがいいかも。
ケースにも、色がちゃんとついているというのが芸の細かいところだ。
ブラック出したり、透明のを出せば受けると思うんだがな。
ゴムの胴巻きとぺなぺなの蓋を何とかしてもらいたいんだが、胴巻きの方は、ケースに収納したときの滑り止めになっているし、蓋はコスト削減でどうしようもないんだろう。
使用感はサイテーだ。
それを追求したわけじゃないから仕方ないが、許容範囲を超えている。
長時間の使用にはとても耐えられそうもない。
こういうものは、ギミックで選んではいけないということだな。
1200カウントの分解能に不足はない。
要は、手に馴染まないというだけの話だ。
このアイテムを使って、心身症にでもなったら、また報告する。
最近のコメント