GNU/Linux >> Znalost Linux >  >> Linux

Zřetězení souborů a vložení nového řádku mezi soubory

Kdybych to dělal já, použil bych sed:

sed -e '$s/$/\n/' -s *.txt > finalfile.txt

V tomto vzoru sed má $ dva významy, za prvé odpovídá pouze poslednímu číslu řádku (jako rozsah řádků, na které se má použít vzor) a za druhé odpovídá konci řádku v substitučním vzoru.

Pokud vaše verze sed nemá -s (vstupní soubory zpracujte samostatně), ale můžete to udělat vše jako smyčku:

for f in *.txt ; do sed -e '$s/$/\n/' $f ; done > finalfile.txt

Můžete:

for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done

Ujistěte se, že soubor finalfile.txt před spuštěním výše uvedeného příkazu neexistuje.

Pokud máte povoleno používat awk můžete udělat:

awk 'FNR==1{print ""}1' *.txt > finalfile.txt

Pokud máte málo souborů na to, abyste mohli vypsat každý z nich, můžete použít substituci procesů v Bash a vložit nový řádek mezi každou dvojici souborů:

cat File1.txt <(echo) File2.txt <(echo) File3.txt > finalfile.txt

Linux
  1. Jak komprimovat a dekomprimovat soubory v Linuxu

  2. Rozdíl mezi Cat a „>“ k vynulování souboru?

  3. Ssh – Kopírování chráněných souborů mezi servery v jednom řádku?

  1. Vložit nové řádky s chybějícími hodnotami (ne)?

  2. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  3. rozdíl mezi souborem zařízení a ovladačem zařízení

  1. Jak sdílet soubory mezi Ubuntu a Mac OS X

  2. Nahrávání souborů na účet S3 z příkazového řádku Linuxu

  3. Jaké jsou rozdíly mezi soubory .txt pro Linux a Windows (kódování Unicode)