複数のファイルを「見つけて」vimで開く方法は?

複数のファイルを「見つけて」vimで開く方法は?

というファイルがあるとしましょう。filename123.txtこのファイルには名前が付けられているため、locateコマンドを使用できますlocate filename123。このファイルが返されます。

vi今/で開きたいですvim。ただし、その場所に移動してviコマンドとファイル名を入力したくありません。ここではlocate filename123viコマンドに結果を追加したいと思います。どうすればいいですか?私は努力しました:

locate filename123 | vi

しかし、これはうまくいきません。このエラーは端末に表示されます。

santosh@santosh:~$ locate filename123 | vi
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.

ベストアンサー1

あなたはそれを使用することができますxargs

locate filename123 | xargs vi

デフォルトでは、指定さxargsれたコマンドのインスタンスをできるだけ少なく実行し、システムに適切な引数を渡します。ARG_MAX。インスタンスに渡される引数の数を制限するには、「オプション」をvi使用します。xargs-n

スペースを含むファイル名を処理するには、xargs'-dオプションを使用します。

locate filename123 | xargs -d '\n' vi

改行文字を含むファイル名を処理するには、xargs'-0オプションとlocate's-0オプションを使用します。

locate -0 filename123 | xargs -0 vi

(また、-0これらのうち使用できないものを--null確認するか、別の方法で文字を区切り\000文字として指定してください。)

おすすめ記事