私はしばらくこの質問に対する答えを探していました。 findを使用してすべてのヒットにテキストを追加するには?私の初期のアプローチは似ていましたが、クリックするたびに繰り返されるsomecode.txtの内容で埋められた
sudo find / -type f -name "*.py" -exec cat somecode.txt >> {} \;
ファイル名を作成することがすべてでした。{}
その後、コマンドを実行してみました。
sudo find / -type f -name "*.py" -exec echo somecode.txt >> {} \;
同じ効果がありましたが、今回は{}
一度またはクリックするたびに繰り返される文字列で埋められました。somecode.txt
これを達成する他の方法はありますか?それとも基本的なものがありませんか?
編集する:
私の意図された目標は、somecode.txt
システム上のすべてのPythonファイルに 。
答え1
-exec
パラメータごとに1つのシェルしかありません。
find . -type f -name "*.py" -exec sh -c 'cat somecode.txt >> "$1"' -- {} \;
sudo
(何も使用しないか、他の場所から始めることをお勧めし/
ます)。
より効率的な作業が必要な場合は、次のことを試すことができます。
find . -type f -name "*.py" -exec sh -c '< somecode.txt tee -a "$@"' -- {} +