最初の行を file1 の出力に置き換え、file2 の内容をフォルダ内のすべてのファイルに追加します。

最初の行を file1 の出力に置き換え、file2 の内容をフォルダ内のすべてのファイルに追加します。

sedを使用して一括編集したいファイルのリストがあります。

  1. ディレクトリ内のすべてのファイルの最初の行を出力に置き換えます。header.txt
  2. footer.txtすべてのファイルの出力を変更します。

フォルダ内のすべてのファイルの現在のXMLヘッダーを次のように置き換える必要があるとします。

から:

<?xml version="1.0" encoding="utf-8"?>

到着する:

<?xml version="1.0" encoding="utf-8"?>
<Container xmlns="http://www.arun-test.com/1.0">
  <APIHeader version="2.0" exportTime="Sun Oct 11 09:42:25 EST 2020"></APIHeader>

footer.txtまた、ディレクトリ内のすべてのファイルにファイルの内容の出力を追加する必要があります。

正しい手順を案内してください。

ベストアンサー1

bashシェルを使用してすべてのファイルから最初の行を削除し、ヘッダーを挿入し、最後にフッターを追加するとします。

for f in *.xml; do
    tmp=$(mktemp)
    ( 
        cat header.txt
        tail -n +2 "$f"
        cat footer.txt
    ) > "$tmp" && mv "$tmp" "$f"
done

おすすめ記事