たくろぐ!

世界一のチラ裏

覚えておきたいけどたまにしか使わないからすぐ忘れる逆引きLinuxコマンド

末尾スペースを一括削除する

まずechoコマンドで末尾スペースのあるファイルを作成します。

echo -e "hello hello   \nworld " > test.txt

次にそのファイルに対してsed正規表現を利用して一括置換を行います。

sed -i 's/\s+$//g' test.txt

これでもよさそうです。

sed -ie 's/\s+$//' test.txt

\s は エスケープされたスペースを指し、+ は直前のパターンの1回以上の繰り返しを指し、$ は末尾を指します。

つまり、正規表現で「すべての行の末尾にある複数スペース」がマッチすることになります。

余談ですが、以下の改行コードを標準出力に表示させるコマンドで、ファイルの中身のスペースが削除されたか確認できます。

cat -E test.txt

さらに余談ですが、vimでファイルを保存するときに自動で末尾スペースを削除する.vimrc設定は以下です。

" 行末のスペースを自動削除
autocmd BufWritePre * :%s/\s\+$//

現在のディレクトリ直下のファイルを対象に、末尾スペースを一括削除する

前述の応用版です。

上記だと微妙に要求を満たせなくてググりまくってつらかったです。

まずはapp/以下のファイルだけ適用します。

grep -Elr '\s+$' app/ | xargs sed -ri "s/\s+$//g"

捕捉ですが、sedのオプションを-irと逆にやるとファイルの末尾にrがついてえらいこっちゃになります。ダメゼッタイ!!!

ディレクトリ指定せずに誤ってドットファイルをいじってしまうと、gitコマンドすら使えなくなるため、ディレクトリ指定した方が無難だと思います。

除外したい対象のファイルを指定するときは以下のようにします。

(たぶんもっといいやり方あると思います)

grep -Elr '\s+$' . | grep -v ".git" | xargs sed -ri "s/\s+$//g"

最終的にはこんな感じになりました。

grep -Elr '\s+$' --include=*.rb | xargs sed -ri "s/\s+$//g"

rbファイルに絞って、末尾がスペースの行すべてを対象として、複数スペースを一括削除するというワンライナーになります。

ちなみにgit diffして、スペースの差分を確認するには以下を設定します。

git config --global diff.wsErrorHighlight all

RubyKaigi2023に参加しました

はじめに

にゃっはろ~、たくです。

今回初めてRubyKaigiに参加しました。

結論を先に言うと、最高でした!!

最近のRubyの進化にキャッチアップするいい機会をもらったと思ってます!

そして改めて英語のスピーキングスキルを上げようと誓いました。

活動

私はほとんどの時間を @nateberkopec さんと @cafedomancer さんと一緒に過ごしました。

最近全然英語を話していなくて、単語を並べるだけの英語を駆使しながら2人とコミュニケーションしました。

私の初日は11日(RubyKaigi 1日目)の早朝でした。

朝6時にバスタ新宿を出発するバスに乗って、9時半ごろに松本に到着し、荷物をコインロッカーに預けて会場へ向かいました。

まつもとさんのkeynoteに始まり、Lightning Talkで終わり、すべてのプレゼンテーションがとても洗練されていて刺激を受けました。

特に印象的だったのは @shugomaeda さんのruby.wasmで作ったBINGOゲームです。

ユーモアも交えつつ、ネイティブアプリでBINGOを作ってデモしていて誰が見てもおもしろかったのでは?と思いました。

Techyでmaniacなのももちろん好きなのですが、やはり誰が見てもわかる、具体的な成果物が見えるというのは最強だと思いました。

1日目のアフターパーティはホテルブエナビスタというたぶん松本で一番豪華な会場で行われ、500人はいるであろうRubyistと交流できました。

会場がめちゃくちゃ大きくてびっくりしました。

2日目は朝から松本市内をランニングしました。

RubyKaigiでは@_st0012 さんの 200行で Debuggerを作るプレゼンテーションがおもしろかったです。

LSP然り、最近のRuby界隈ではコーディング体験をよくするための試みが多くて印象的でした。

全然関係ないけど、型定義もキャッチアップしなきゃ。

またあとでスライドを見返したい。

2日目夜は現地の焼き鳥やさんで日本酒と焼き鳥を堪能しました。

終始英語で話していて、普段使わない脳みそを酷使していい意味で脳みその疲労を感じました。

3日目は会場で昔オプティムでSES常駐していたときに一緒に仕事をしていた人と3, 4年ぶりに再会しました。

元気そうでよかったです。

来年も会えるかな。

そしてクロージングパーティには出ずに、早々とバスで東京へ帰りました。

冒頭でも言いましたが、改めて最高の体験をしました。

もう毎年行こうと誓うくらいにはモチベーションが高まってます。

ベストオブノベルティ

RubyKaigiのTシャツは言わずもがな、本やステッカー、ソックス、手ぬぐい、金太郎飴、ボールペン、クッキー、りんご、りんごジュース、クラフトビールなどが全部もらえました!

めずらしいのだと、プランニングポーカー用のトランプ、Rubyメソッドかるたなどがありました。

私的ベストオブノベルティはesmさんが配っていた?Rubyメソッドかるたなのですが、自分はもらいませんでした。

とぅいったーで遊んでるのを見て急にほしくなったのですが、時すでにお寿司でした。

終わりに

とりとめもない日記になりましたが、来年はもっといろんな人と交流するために英語をスキルアップしようと思います。

改めて私と関わってくれた方々に感謝します。

また来年沖縄でお会いしましょう~