というファイルがあるとしましょう。filename123.txt
このファイルには名前が付けられているため、locate
コマンドを使用できますlocate filename123
。このファイルが返されます。
vi
今/で開きたいですvim
。ただし、その場所に移動してvi
コマンドとファイル名を入力したくありません。ここではlocate filename123
viコマンドに結果を追加したいと思います。どうすればいいですか?私は努力しました:
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
文字として指定してください。)