Schreiben in mehrere Dateien mit cat


7

Ich habe einige leere HTML-Dateien, die ich schreiben möchte. Ich versuche das

cat account_settings/account_settings.html >> assets/assets.html, users/users.html

zu versuchen, in die Dateien zu schreiben assets.htmlund users.html.

Wie kann ich in mehrere Dateien schreiben?


3
In zsh cat foo > a > bfunktioniert.
16.

Antworten:


14

Sie können den teeBefehl verwenden

NAME
       tee - read from standard input and write to standard output and files

z.B

cat account_settings/account_settings.html | tee -a assets/assets.html users/users.html

oder (unter Verwendung der Eingangsumleitung)

tee -a assets/assets.html users/users.html < account_settings/account_settings.html

Wie auf der Handbuchseite angegeben, wird teeauch der Inhalt an das Terminal ausgegeben (Standardausgabe). Wenn Sie dies nicht sehen möchten, leiten Sie stdout auf null um

tee -a assets/assets.html users/users.html < account_settings/account_settings.html > /dev/null

Kann tee -a auch beim Löschen von Inhalten verwendet werden truncate -s 0 tee -a assets/assets.html users/users.html
Le Qs

@LeQs Versuchen Sie, die Dateien zu löschen, bevor Sie darauf schreiben?
Chai T. Rex

@ ChaiT.Rex Es ist nur ein zufälliger Gedanke, der mir unabhängig von meiner ursprünglichen Frage in den Sinn kam.
Le Qs

Das Abschneiden und Anhängen von @LeQs scheint nicht kompatibel zu sein - was genau möchten Sie erreichen? Wenn Sie mehrere Dateien abschneiden möchten, können Sie dem Befehl zum Abschneiden einfach mehrere Dateinamenargumente geben, z truncate -s0 foo bar baz. Sie könnten so etwas tun, wie : | tee foo bar bazich denke.
Steeldriver

1
@LeQs macht truncate -s0 users/users.html credit/credit.htmlin diesem Fall nicht das, was Sie wollen?
Steeldriver

6

Durchlaufen Sie einfach die Liste der gewünschten Dateien

for file in assets/assets.html users/users.html
do
    cat account_settings/account_settings.html >> "$file"
done
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.