GNU/Linux >> Linux の 問題 >  >> Linux

bashのフォルダ内の各ファイルの先頭に文字列を追加するにはどうすればよいですか?

1 つのコマンドで sed を使用してこれを行うことができます

for f in *; do
  sed -i.bak '1i\
  foo-bar
  ' ${f}
done

これはそれを行います。各ファイルに同じテキストを使用すると、より効率的になる可能性があります...

for f in *; do 
  echo "whatever" > tmpfile
  cat $f >> tmpfile
  mv tmpfile $f
done

ループと cat なしでこのようにすることができます

sed -i '1i whatever' *

ファイルをバックアップしたい場合は、-i.bak を使用してください

または awk を使用

awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *

Linux
  1. ファイルの最後に改行を追加するにはどうすればよいですか?

  2. フォルダ内の多くのファイルの名前を変更するにはどうすればよいですか?

  3. フォルダー階層内の個別のファイル拡張子をすべて見つけるにはどうすればよいですか?

  1. Bash で、ファイルの各行の後に文字列を追加するにはどうすればよいですか?

  2. 各フォルダにファイルを作成するにはどうすればよいですか?

  3. 各ファイルとディレクトリのサイズを一覧表示し、Bash で降順で並べ替える方法は?

  1. Bash:改行なしでファイルの末尾に文字列を追加します

  2. ファイルの先頭にテキストを挿入する方法は?

  3. ファイルの各行の先頭に文字列を追加するにはどうすればよいですか?