回答:
単純なforが作業を行います:
for i in ./*.txt; do echo 'cat' >> "$i"; done;
これは、現在のディレクトリにあるすべてのtxtファイルのリストを取得し、それら全体をループし、それらにecho猫を入れます(コンテンツに追加します)。に変更>>して>、ファイルの内容をcatで上書きできます。
もう1つのことはtee、ストリームを複数のファイルにリダイレクトすることです。
追加するには:
echo "cat" | tee -a *.txt
上書きするには:
echo "cat" | tee *.txt
ambiguous redirect
ファイルが空でない場合は、sedループせずに使用できます。cat最初に追加するには:
sed 'i\cat' *.txt
最後に追加するには:
sed 'a\cat' *.txt
2行目に追加するには:
sed '2 a\cat' *.txt
前に行を追加するにはfoo:
sed '/foo/ i\cat' *.txt
ただし、空のファイルでは機能しません。バグの種類。
(へは実際にあなたが必要とするテストした後のファイルへの書き込み-iオプションを:sed -i 'a\cat' *.txt)
sedは私のジャムです;)
'i\cat'スラッシュの代わりにバックスラッシュを使うのですか?
'icat'またはを置くこともできますi cat。バックスラッシュは慣習的なものだと思います。
Pythonのアプローチ:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
with open(i,'w') as fd:
fd.write("cat\n")
sysモジュールを使用してコマンドライン引数を反復処理します使用法はであり、現在の作業ディレクトリ内の./add_cat.py *.txtすべての.txtファイルを操作します。これを改善するには、コマンドライン引数#1を文字列として使用して、そこに「cat」をハードコーディングする代わりに書き込むことができます。
echo "cat" >> *.txtですか?