Twitterでそんな感じの処理について書かれてたので、備忘で残しておく。
内容としては、tarで展開した後にファイルだけ頭に特定の文字列を追加するという内容。
GNU tarであればtransformオプションがあるから楽…ではあるのだが、Mac OSだとデフォルトではGNU tarは入ってないし、特定の条件下でないとうまく動作しない。
1. GNU tarの場合(特定の条件でのみ動作)
先程も書いたのだけど、GNU tarであれば --transform
オプションというのがあり、これを使うことでsedのような形式で置換処理を書くことができる。
普段利用する際には問題ないのだが、本当にごくたまに、ターミナル上で長い行がいる場合、折り返さずに切り落として表示していほしいことがある。(今回の場合、 自分でも何をトチ狂ったのかbashファンクションでインクリメンタルサーチを作ってた ので、そこで困ったという背景)
表示される内容がASCIIだけであれば、cutなどでターミナル幅を超える文字数を削除するようにすればいいのだが、UTF-8とかが含まれているとそれも難しくなってくる。
さて、どうすればいいのだろう…?と調べていたところ、どうやら DECエスケープシーケンス を利用してターミナル側の行末オートワープ機能を無効化してやれば...
bash/zshで、入力中の内容を利用したカスタムキーバインドを作りたいということがあったので、備忘で残しておく。
(当たり前の話として、bash/zshどちらもキーバインドでfunctionを呼び出すことになるので、適当なfunctionを作ることになる)
以下、実際に動かしてるときの状態。
最初はzsh、次にbashに切り替えている。
ここでは、サンプルとしてカーソル位置から右側の文字列をダブルクオーテーションでくくるfunctionを作成する。
前回、goでssh-agentをForwardingする処理について書いたことがあったけど、認証自体は普通にパスワードで処理するように書いていた。で、ssh-agentで認証させることもできるようなので、サンプルコードを書いてみた。
以下、サンプル(一応 こちら にもあげている)。
Mac OSで、ssh-agentにYubikeyの鍵を登録したいということがあったので、備忘で残しておく(すでにOpenSCとかはインストール済で、ssh -Iでログインができる状態と仮定)。
ssh-agentでYubikeyの鍵を利用する場合、通常であればssh-agent起動後、以下のようなコマンドを実行すればいい。
ssh-add -s /usr/local/lib/opensc-pkcs11.so