TVアニメ「デンキ街の本屋さん」PV第2弾
アニメ『デンキ街の本屋さん』
徹夜で物づくりはつらいですが、手伝ってくれる人がいるだけで楽しい思い出になりますね。本が好きで私も本屋に勤めていたことがありましたが、袋詰めは無償に楽しいです。レジ打ちは面倒でしたが、質問に回答するのが楽しい。本の場所を覚えるのも楽しい。まあ、本好きといっても、本を読むのが特に好きというわけでなく(まあ当然読みますが)本そのものが好きなんですよね。今でも本は折り目を付けず、手をきれいに洗って読みます。汚れてしまう、同じ本をもう一冊なんてこともあります。
さて、今回はBashとPowerShellの比較の文字列置換です。
(本記事はPowerShell入門記事としてコチラにもまとめています。)
文字列の長さ
Bash
takk@ubu16:~/aaa$ echo ${#a} 5 takk@ubu16:~/aaa$
PowerShell
PS /home/takk/aaa> $a="HELLO" PS /home/takk/aaa> $a.Length 5 PS /home/takk/aaa>
文字列の置換
Bash
takk@ubu16:~$ a=HELLO takk@ubu16:~$ echo ${a//L/E} HEEEO takk@ubu16:~$
PowerShell
PS /home/takk> $a="HELLO" PS /home/takk> $a-replace("L","E") HEEEO PS /home/takk>
文字列の分割
Bash
takk@ubu16:~$ a=192.168.1.10 takk@ubu16:~$ b=(${a//./ }) takk@ubu16:~$ echo ${b[1]} 168 takk@ubu16:~$
PowerShell
PS /home/takk> $a="192.168.1.10" PS /home/takk> $a.Split(".")[1] 168 PS /home/takk>
文字のインデックス(最初)
Bash
takk@ubu16:~$ grep -bo L <<< $a | sed -ne "1s/^\(.*\):.*$/\1/p" 2 takk@ubu16:~$
無理やりです。
PowerShell
PS /home/takk> $a="HELLO" PS /home/takk> $a.IndexOf("L") 2 PS /home/takk>
文字のインデックス(最後)
Bash
takk@ubu16:~$ grep -bo L <<< $a | tac | sed -ne "1s/^\(.*\):.*$/\1/p" 3 takk@ubu16:~$
tacをてこ入れしただけです。
grepはこのように文字列中のインデックスをすべて表示してくれます。
takk@ubu16:~$ grep -bo L <<< $a 2:L 3:L takk@ubu16:~$
PowerShell
PS /home/takk> $a="HELLO" PS /home/takk> $a.LastIndexOf("L") 3 PS /home/takk>
Bashだと文字列の中まで踏み込もうと思うと、別のコマンドの力を借りるしかないですが、PowerShellはメソッドがあるでの楽チンです。
コメント