フォルダパスで$ 1を使用する方法

フォルダパスで$ 1を使用する方法

私はLinuxスクリプトに初めて触れたので、誰かがこの質問をしたら謝ります(公開する前にかなりの検索をしました)。

特定の文字の組み合わせがバックアップファイルに表示されることを確認する簡単なスクリプトを作成しています。これらのファイルのパスはデバイスによって異なり、ファイルが多いため、テキストファイルで確認する必要があるファイルのリストがあります。

私がやりたいことは、catファイルを作成し、そのデバイスフォルダのパスにデバイス名を挿入してから、最新のバックアップファイルを確認することです。例えば

cat devicelist.txt  | grep A[BCD] /folder1/folder2/$1/latest

これによりエラーが発生します。/latest: No such file or directory

それでは、私が何を間違っているのでしょうか?

ベストアンサー1

お客様の要件を正しく理解したら、xargs次のように使用できます。

cat devicelist.txt | xargs -d'\n' -I{} echo grep 'A[BCD]' "/folder1/folder2/{}/latest"

または(ファイルを直接読んでください)

xargs -a devicelist.txt -d'\n' -I{} echo grep 'A[BCD]' "/folder1/folder2/{}/latest"

echo必要に応じて動作すると確信している場合は削除してください。

man xargs詳細とプラットフォームで利用可能なオプションの完全なリストについては、リソースを参照してください。

おすすめ記事