ディレクトリ内のすべてのファイルの先頭に行を追加します。

ディレクトリ内のすべてのファイルの先頭に行を追加します。

ディレクトリ内のすべてのファイルの先頭に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行の後に追加」を意味します。これはexPOSIXファイルエディタ(他の形式のエディタでもあります)のコマンドですvi。行.自体の末尾に追加されます。 x保存と終了。

複数のファイルを一度に処理するには、ループforとファイルグローブを使用してください。

for f in *.txt; do
  printf '%s\n' 0a '# This line heads all files' . x | ex "$f"
done

おすすめ記事