Potřebujete cat
(zkratka pro concatenate) příkaz s přesměrováním shellu (>
) do výstupního souboru
cat 1.txt 2.txt 3.txt > 0.txt
Další možností pro ty z vás, kteří stále narážejí na tento příspěvek jako já, je použít find -exec
:
find . -type f -name '*.txt' -exec cat {} + >> output.file
V mém případě jsem potřeboval robustnější možnost, která by procházela více podadresáři, takže jsem se rozhodl použít find
. Rozebrat to:
find .
Podívejte se do aktuálního pracovního adresáře.
-type f
Zajímají vás pouze soubory, nikoli adresáře atd.
-name '*.txt'
Zkrácení sady výsledků podle názvu
-exec cat {} +
Pro každý výsledek proveďte příkaz cat. "+" znamená pouze 1 výskyt cat
je vytvořeno (thx @gniourf_gniourf)
>> output.file
Jak je vysvětleno v jiných odpovědích, připojte obsah vedený pomocí cat na konec výstupního souboru.
Při ukládání výstupu kočky do proměnné jsou odstraněny všechny nové řádky
odečíst dny od data v bash