shのxargsで一重引用符チルダを拡張する方法は?

shのxargsで一重引用符チルダを拡張する方法は?

ファイルに保存されているファイルのリストがあり、各ファイルを検索して検索語を検索したいと思います。

ただし、xargsパラメータは一重引用符で囲まれた文字列として渡されるため、プレフィックスが付いたすべてのファイルに対して 'が拡張されないため、エラーが~発生します。No such file or directory~

これは私が実行しているコマンドです。cat search-files | xargs -n 1 grep 'search-term'

search-files実際に入り、パスを直接変更せずにこの問題をどのように解決できますか?

ベストアンサー1

しかし、他の問題に直面する可能性があります。*検索ファイルにまたは$(rm important-file)?行が含まれている場合はどうなりますか?

@steeldriverのヒントを展開すると、次のようになります。

sed "s,^~,$HOME," search-files | xargs -n 1 grep 'search-term'

おすすめ記事