ディレクトリ内のすべてのファイルの先頭に2行を追加しようとしています。
以下を使用して、単一のファイルに対してこれを実行できます。
echo -e "% First Line\n% "$(date)"\n\n$(cat file1.txt)">file1.txt
最初に2行を追加する方法みんなディレクトリにファイルがありますか?
ベストアンサー1
まず、コマンドは次のようになります。
echo -e "% First Line\n% "$(date)"\n\n$(cat file1.txt)">file1.txt
これは強くお勧めしません。 ファイルにバックスラッシュが含まれていると問題が発生します。引用符とコマンドの置き換えをお読みください。
単一ファイルの場合、ファイルの先頭に行を挿入する推奨 POSIX 方法は次のとおりです。
printf '%s\n' 0a 'First line' '2nd line; 3rd line is empty' '' . x | ex file.txt
0a
「0行の後に追加」を意味します。これはex
POSIXファイルエディタ(他の形式のエディタでもあります)のコマンドですvi
。行.
自体の末尾に追加されます。 x
保存と終了。
複数のファイルを一度に処理するには、ループfor
とファイルグローブを使用してください。
for f in *.txt; do
printf '%s\n' 0a '# This line heads all files' . x | ex "$f"
done