vimでファイルリストを使用してファイルを開くことはできません。

vimでファイルリストを使用してファイルを開くことはできません。

vim $(cat filelist)私は以前提案したようにvimを使ってファイルを開いてみました。質問

次のようなファイルがあるとしましょう。

~/Workspace/bar/foo.cpp

含まれていると、vim $(cat filelist)実行が正しく開きます。ただし、含まれている場合、コマンドはファイルを開きません。絶対パスを使用すると、コマンドが失敗する理由がわかります。~/Workspacefoo.cppfilelistbar/foo.cppfilelist~/Workspace/bar/foo.cpp

ベストアンサー1

これは、さまざまな種類の拡張がシェルで実行される順序によるものです。マニュアルbashページには次のように記載されています。

拡張は単語に分割され、コマンドラインから行われます。中括弧拡張、チルダ拡張、パラメータおよび変数拡張、コマンド置換、算術拡張、トークン化、パス名拡張など、7 種類の拡張が実行されます。

~isチルダ拡張を置き換え、$(...)isコマンドを置き換えます。コマンド置換を実行した後、チルダ置換がなくなったことがわかります。実際の絶対パス(ファイルシステムのルートから始まる/)を使用すると機能します。

ただし、次の方法で直接拡張を実行できますsed

vim $(sed "s_~_${HOME}_g" filelist)

おすすめ記事