Je vais le laisser comme note de service aux fins de mémoire.
・ Je souhaite enregistrer un certain fichier en unités d'une ligne et diviser les noms de fichiers en numéros de série. ・ Pour les numéros de série, je souhaite appliquer un remplissage à zéro afin que l'ordre d'affichage soit approprié. -Le fichier à fractionner faisait environ 4000 lignes ** ・ La chaîne de caractères dans la cible de division contient "", et je veux la laisser telle quelle. ← 2020/03/13 (ven) Addendum **
C'était un peu gênant de laisser le fichier en tant que script shell, donc je l'ai écrit pour qu'il soit complété avec juste une commande. (Au final, il semble que le contenu écrit dans le fichier shell n'a pas du tout changé ...)
$ bash --version
GNU bash,Version 4.4.20(1)-release (x86_64-pc-linux-gnu)
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
Avant amélioration
count=1 ; load_target="hogehoge.txt" ; cat ${load_target} | while read line ; do echo ${line} > "${load_target}_`printf \"%04d\" ${count}`.txt" ; count=`expr ${count} + 1` ; done
Dans ce qui précède, si "" est inclus dans la chaîne de caractères divisée, il sera lu comme un échappement et effacé. (Je traitais de données contenant des informations de balise HTML dans la partie valeur du format json, et cela s'est réellement produit ...)
** Si vous ne voulez pas être effacé, vous pouvez utiliser l'option -r
de la commande read
**
Après amélioration
count=1 ; load_target="hogehoge.txt" ; cat ${load_target} | while read -r line ; do echo ${line} > "${load_target}_`printf \"%04d\" ${count}`.txt" ; count=`expr ${count} + 1` ; done
En ce qui concerne l'extension et la partie de remplissage 0 au moment de la sortie, cela semble cool si vous concevez un peu plus et extrayez les informations de l'expansion variable et du fichier source de lecture, car il sera écrasé en fonction du nombre de lignes du fichier source de lecture. Pour le moment, ce qui précède a été résolu, j'espère donc pouvoir l'améliorer plus tard.
Avec One Liner, il existe des manières encore plus élégantes d'écrire! !! Je vous serais reconnaissant de bien vouloir nous donner votre avis pour des études ultérieures. .. ..