GNU/Linux >> Znalost Linux >  >> Linux

Jak rozdělit soubory CSV podle počtu zadaných řádků?

Použijte příkaz rozdělení Linuxu:

split -l 20 file.txt new    

Rozdělte soubor "file.txt" na soubory začínající názvem "new" a každý obsahuje 20 řádků textu.

Zadejte man split na výzvu Unix pro více informací. Nejprve však budete muset odstranit záhlaví ze souboru file.txt (pomocí tail příkaz, například) a poté jej přidejte zpět do každého z rozdělených souborů.


Udělal z toho funkci. Nyní můžete volat splitCsv <Filename> [chunkSize]

splitCsv() {
    HEADER=$(head -1 $1)
    if [ -n "$2" ]; then
        CHUNK=$2
    else 
        CHUNK=1000
    fi
    tail -n +2 $1 | split -l $CHUNK - $1_split_
    for i in $1_split_*; do
        sed -i -e "1i$HEADER" "$i"
    done
}

Nalezeno na:http://edmondscommerce.github.io/linux/linux-split-file-eg-csv-and-keep-header-row.html


One-liner, který zachovává řádek záhlaví v každém rozděleném souboru. Tento příklad poskytuje 999 řádků dat a jeden řádek záhlaví na soubor.

cat bigFile.csv | parallel --header : --pipe -N999 'cat >file_{#}.csv'

https://stackoverflow.com/a/53062251/401226, kde odpověď obsahuje komentáře o instalaci správné verze Parallel (v ubuntu použijte specifický paralelní balíček, který je novější než to, co je součástí moreutils)


Tohle by mělo fungovat!!!

file_name =Název souboru, který chcete rozdělit.
10000 =Počet řádků, které by každý rozdělený soubor obsahoval
file_part_ =Předpona názvu rozděleného souboru (file_part_0,file_part_1,file_part_2..atd pokračuje)

split -d -l 10000 název_souboru.csv část_souboru_


Linux
  1. Jak rozdělit jeden textový soubor do více souborů *.txt?

  2. Jak spojit dva soubory CSV?

  3. Jak odstranit soubory .fuse_hidden*?

  1. Jak zvýšit limit počtu otevřených souborů v Linuxu

  2. Jak převést soubory do kódování UTF-8 v Linuxu

  3. Jak rozdělit a kombinovat soubory z příkazového řádku v Linuxu

  1. Jak rozdělit jeden soubor do více souborů na základě řádků

  2. Jak naplnit soubor streamem z /dev/urandom se zadaným počtem řádků?

  3. Jak analyzovat soubor CSV v Bash?