ラズパイオーディオの
問題、
ようやく解決しました。
ターミナル接続が拒否られるのって、
ラズパイのOSである、raspbianの
仕様変更だったのね。
/boot/ssh を作ってあげたらログインできました。
(/bootに、sshというファイルがあるだけでいいみたい)
さて、もう一つ、IPアドレスがへまる件ですが、
こちらも解決。
処理対象の文字列は下記の通り。
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.42 metric 202
これに対して正規表現があってないのが問題なので変更。
頭のIPアドレス(数値4つの列挙ね)でなく、後のIPアドレスを取らねばなりません。
で、修正したのは
\d+\.\d+\.\d+\.\d+.$
↓
\d+\.\d+\.\d+\.\d*[1-9]\d*
何を変えたかというと、
\. 「.」文字自体
\d+ 数値を1文字以上
. 任意の1文字
$ 行末
を
\. 「.」文字自体
\d* 数字を0文字以上
[1-9] 1~9までの間の1文字
\d* 数字を0文字以上
と書き換えたわけです。
簡単に言うと、行の最後に任意の数字があればいいよ、から、
行途中でいいから、0以外の数字が必ず必要ですよ。に修正。
最初の数字の列挙、サブネットマスクでは4カラム目は「0」のみなので
マッチしないわけ。
(該当することをマッチと言います)
記号が絡み合って宇宙語的な言葉ですが、1文字1文字ごとに区切っていけば
理解できないことも…ないかな?
サクラエディタとか、いろんな所で使えますし、
特に、このソフトは置換前にマッチした個所を表示してくれるので、
文書を打ってるときの置換で、ちょっとだけでも覚えておくと便利なんです。
たとえば、文書内で表記がちょっと違うところを同じ表記に置き換えるとき、
いちいち検索しなくても一括で置換できたり。
ちなみに、これも正規表現をサクラエディタに打ち込んで、
狙ったところがマッチすることを確認してから、ラズパイに入力してます。
でも、
「\.」の場合は「.」が持つ任意の1文字の意味を打ち消すのですが、
「\d」についてはアルファベットの「d」でなく任意の数字という特別な意味を持たせる
と、「\」については真逆の事をやらかしますのでご注意です。
また、この打消しについても必要あるところ無いところがあってややこしい。
(処理対象に記号が含まれるとほんと面倒になります)
ということで、あまりにも乱用しまくってしまうと後での解析が面倒になりますし、
マッチしたいところにマッチしなかったり、
思いもよらないところにマッチしてしまう問題もあるのでほどほどがよろしいかと。
しかし、このスクリプト奥が深すぎ。
ラズパイ側でボリューム調整ができないDACの場合、ボリュームを表示しないんですよ。
何気に」かなり高機能。いい勉強ネタです。
さらに解析しないとね。
ブログ一覧 | 日記
Posted at
2017/07/13 23:04:09