GNU/Linux >> Tutoriels Linux >  >> Linux

Comment diviser les fichiers CSV en fonction du nombre de lignes spécifié ?

Utilisez la commande Linux split :

split -l 20 file.txt new    

Divisez le fichier "file.txt" en fichiers commençant par le nom "new" contenant chacun 20 lignes de texte chacun.

Tapez man split à l'invite Unix pour plus d'informations. Cependant, vous devrez d'abord supprimer l'en-tête de file.txt (en utilisant le tail commande, par exemple), puis rajoutez-le à chacun des fichiers fractionnés.


Transformez-le en fonction. Vous pouvez désormais appeler le 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
}

Trouvé sur :http://edmondscommerce.github.io/linux/linux-split-file-eg-csv-and-keep-header-row.html


Une ligne qui préserve la ligne d'en-tête dans chaque fichier fractionné. Cet exemple vous donne 999 lignes de données et une ligne d'en-tête par fichier.

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

https://stackoverflow.com/a/53062251/401226 où la réponse contient des commentaires sur l'installation de la bonne version de parallèle (dans Ubuntu, utilisez le package parallèle spécifique, qui est plus récent que celui fourni dans moreutils)


Cela devrait fonctionner !!!

file_name =Nom du fichier que vous souhaitez diviser.
10000 =Nombre de lignes que chaque fichier fractionné contiendrait
file_part_ =Préfixe du nom du fichier divisé (file_part_0, file_part_1, file_part_2..etc continue)

split -d -l 10000 file_name.csv file_part_


Linux
  1. Comment augmenter la limite du nombre de fichiers ouverts sous Linux

  2. Comment convertir des fichiers en codage UTF-8 sous Linux

  3. Comment parser un fichier CSV dans Bash ?

  4. Comment diviser un fichier texte en plusieurs fichiers *.txt ?

  5. Comment supprimer les fichiers .fuse_hidden* ?

Comment diviser un gros fichier d'archive en plusieurs petits fichiers à l'aide de la commande Split sous Linux

Comment diviser un gros fichier d'archive en plusieurs petits fichiers à l'aide de la commande Split sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment compresser un fichier sous Linux