12/29 (土)
[Food] CHEGA+MAIS@川崎
Permlink
川崎にもシュラスコのお店があると知り前々から行ってみたかったが2018年の肉の食い納めに行ってみる。 CHEGA+MAIS(シェーガマイス)(公式、食べログ)という店で、川崎駅からは結構離れている。
昼一で行ったのだが、自分ともう一組しか客がいない。 そのため肉を次々出してもらえるし、1度にたくさんもらえるので、一巡でお腹がいっぱいに。
焼きパイナップルが美味し。
12/27 (木)
12/21 (金)
12/15 (土)
[Movie] グリンチ
Permlink
チネチッタで『グリンチ』(原題: The Grinch)の吹き替え版を観る。
30年ぐらい前に英語の授業で1966年のアニメ版を観たことがある。 その映画は毎年クリスマスの時期に流されると聞かされた。 イルミネーションは3D化したがあらすじは大きく変えてこなくて、村の様子なども1966年アニメ版の雰囲気にそっくりだ。 このあたりは原作を木っ端微塵に改変してくるディズニー映画との違いか。 イルミネーションの3Dアニメ映画は『SING/シング』(原題: Sing)や『ペット』(原題: The Secret Life of Pets)を観ても脚本が練れてないと感じるが、原作に沿っているのでグリンチはまあ普通のシナリオの運びだった。
12/14 (金)
シェルスクリプトの中で XML の任意の要素の抽出をワンライナーで書く
Permlink
Maven の設定ファイル pom.xml の中のバージョン番号(<version>0.3.6-2</version>
)をシェルスクリプトで取り出そうとしたが、sed、perl、grep などいろいろ調べたが存外難しいことが分かった。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>group-name</groupId> <artifactId>artifact-id</artifactId> <packaging>jar</packaging> <version>0.3.6-2</version> <name>project-name</name> ...
sed の場合
sed を使った場合、正規表現でマッチしたものを取り出すことはできる。 しかしこの実行結果は以下のようなる。 sed はテキストファイル中の各行に対して処理するので、マッチしない行の扱いが残ってしまう。
$ cat pom.xml | sed -e 's/<version>\([0-9]\+\.[0-9]\+\.[0-9]\+\)-[0-9]\+<\/version>/\1/g'
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group-name</groupId>
<artifactId>artifact-id</artifactId>
<packaging>jar</packaging>
0.3.6-2
<name>project-name</name>
....
grep の場合
grep はファイル全体が対象である。
-E
オプションがあり正規表現が記述できる。
これに -o
オプションを使うとマッチした部分だけを取り出すことができる。
2行目のように -E
の替わりに -P
を使うと、Perl の正規表現が使えコンパクトにできる。
$ grep -oE '<version>[0-9]+\.[0-9]+\.[0-9]+-[0-9]+</version>' pom.xml $ grep -oP '<version>\d+\.\d+\.\d+-\d+</version>' pom.xml
この結果は以下のように取り出せるが、数値だけを取り出すことはできない。
<version>([0-9]+\.[0-9]+\.[0-9]+-[0-9]+)</version>
のように括弧で囲っても効果なし。
解決
結局、テキストファイル中の全ての改行を削除して1行のデータとし、その後に正規表現による抜き出しをするという解決を図った。 負けた気分。
$ cat pom.xml | perl -pe 's/\n//g'| sed -e 's/^.*<version>\([0-9]\+\.[0-9]\+\.[0-9]\+-[0-9]\)<\/version>.*$/\1/g'
sed -n \'s/^.*<version>\\([0-9]\\+\\.[0-9]\\+\\.[0-9]\\+\\)-[0-9]\\+<\\/version>.*$/\\1/gp\' pom.xml
でいいのではないでしょうか。
-n でデフォルトの出力を抑制して、sコマンドの p オプションで、マッチした行だけを出力させています。
sed 1コマンドのワンライナーで抽出ができました。
12/2 (日)
[Movie] くるみ割り人形と秘密の王国
Permlink
チネチッタで『くるみ割り人形と秘密の王国』(原題: The Nutcracker and the Four Realms)で吹き替え版を観る。 これもディズニー実写映画にありがちな原作とはほとんど関係ないレベルに改変された映画だった。
途中、黒人ダンサーによるバレーダンスが挟まれるが、エンディングでも同じようにダンスシーンがあるのが印象的。
12/1 (土)
Qiita にブログを書いてみる
Permlink
放置していた自分の Qiita にブログ記事を書いてみることにする。
とりあえず少し前から調べていた Nexus Repository Manager 3.0 の記事を記述してみる。
- Nexus Repository Manager3 の Docker コンテナを HTTPS 化
- イントラネット内に立ち上げた Nexus Repository Manager3 を DockerHub のミラーレジストリにする
- Nexus Repository Manager3 を使って yum リポジトリを作る
いろいろ使えない記法が多くてもどかしい。