私は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
詳細とプラットフォームで利用可能なオプションの完全なリストについては、リソースを参照してください。