新米パパの育児留学

新米パパの育児留学

『育児留学』とは、育児を通して異なる視点を得たり新しいことに挑戦して自己成長に繋げること。育児奮闘中の新米パパが育児を通して得た気づきや感じたこと、育休中に習得したプログラミングに関する話題を発信していきます。

未経験からエンジニアへ転職した私のキャリア構築プロセス(31週目)

スポンサーリンク

スポンサーリンク

f:id:mochikichi321:20171218132720j:plain

異業種から未経験でエンジニアへ転職し、Ruby(Ruby on Rails)エンジニアとして新しいキャリアがスタートしました。エンジニアとしてのキャリアを構築していくプロセスを綴っていきます。これからエンジニアを目指される方の参考になれば幸いです。

この記事を書く目的

・学んだことをアウトプットすることで理解を深める

・業務/学習の軌跡を残すことで自分が指導する立場になった時にどこでどういうことにつまづいたかがわかり指導しやすくなる

・エンジニアを目指してプログラミングを学習している方がエンジニアの仕事がどんなものかをイメージしやすくなる(会社によるので一例として)

業務

・[Rails5.1化対応]Rails5.1.XのChangeLogを読む

・独自gemログの集計と解析

・コードレビュー

学び

ファイル比較して抽出するのにcommコマンドが便利

Linuxでファイル比較して片方にしかない情報を抽出したい際にcommコマンドが便利

※ファイル内はsortされていることが前提

以下のようなファイルがあるとする。

$ cat test1.txt
a
b
c
d
e

$ cat test2.txt
1
2
a
c
e

commを使って二つのファイルを比較した結果

  • 1:左列が"test1.txt"のみに存在するもの
  • 2:中央が"test2.txt"のみに存在するもの
  • 3:右列が共通して存在するもの
$ comm test1.txt test2.txt
        1
        2
                a
b
                c
d
                e

出力したい内容に応じてオプション指定
下記のように出力しない列番号を指定する

# "1:左列が"test1.txt"のみに存在するもの"のみ出力
$ comm -23 test1.txt test2.txt
b
d

# "2:中央が"test2.txt"のみに存在するもの"のみ出力
$ comm -13 test1.txt test2.txt
1
2

# "3:右列が共通して存在するもの"のみ出力
$ comm -12 test1.txt test2.txt
a
c
e

一応diffでもオプション指定すればできるがめんどくさい

$ diff --changed-group-format='%>' --unchanged-group-format='' test1.txt test2.txt
1
2

【 comm 】コマンド:ソート済みのテキストファイルを比較する

シンボリックリンクの作成と削除

シンボリックリンクの作成

-sがシンボリック作成オプション

$ ln -s [リンクしたいファイル] [リンク名]

#sample: "bar"というシンボリックリンクで"/foo/bar.rb"を指す
$ ln -s /foo/bar.rb bar
シンボリックリンクの削除
$ unlink [リンク名]

#sample: "bar"というシンボリックリンクを削除
$ unlink bar
シンボリックリンクの上書き

-fが上書きオプション(force)

$ ln -sf [上書きリンクしたいファイル] [上書きしたいリンク]

#sample: "bar"というシンボリックリンクでリンク先を"/foo/bar.txt"で上書き(bar.rb=>bar.txt)
$ ln -sf /foo/bar.txt bar
# 上書きオプションを使わない場合(一回消してから再定義なので手間)

$ unlink bar
$ ln -s /foo/bar.txt bar

Linuxコマンド集【 ln 】

所感

Linuxでのファイルの差分比較といえばdiffが真っ先に思いつくが、commというコマンドがあり便利だった。知ってるとちょっと得をするかも。