Bashで複数のテキストファイルの先頭と末尾にテキストを追加するには?

Bashで複数のテキストファイルの先頭と末尾にテキストを追加するには?

テキストファイルでいっぱいのディレクトリがあります。私の目標は、すべてのものの始めと終わりにテキストを追加することです。各ファイルの先頭と末尾のテキストは同じです。

Webから取得したコードによると、以下はファイルの先頭に追加されたコードです。

echo -e 'var language = {\n$(cat $BASEDIR/Translations/Javascript/*.txt)' > $BASEDIR/Translations/Javascript/*.txt

ファイルの末尾に追加されるコードです。目標は、};各ファイルの末尾にテキストを追加することです。

echo "};" >> $BASEDIR/Translations/Javascript/*.txt

私が引用した例は単一のファイルで動作します。私の考えでは、ワイルドカードを使ってみるべきだと思います*.txt

他の間違いを犯した可能性もあります。とにかく、複数のファイルの先頭と末尾にテキストを追加するにはどうすればよいですか?

ベストアンサー1

ファイルにテキストを追加するには、次のものを使用できます(GNUを介して実装されていますsed)。

sed -i '1i some string' file

テキストの添付はこんなに簡単です

echo 'Some other string' >> file

最後にやるべきことは、編集したいすべてのファイルを繰り返すループにこれを置くことです。

for file in *.txt; do
  sed -i '1i Some string' "$file" &&
  echo 'Some other string' >> "$file"
done

おすすめ記事