Sous Linux, vous pouvez utiliser l'instruction for pour insérer des caractères à divers endroits sur la ligne à l'aide de la commande ** sed **. Je pense que cela peut être appliqué à d'autres commandes. (Il semble y avoir un moyen plus simple ...)
insert.sh (Vous pouvez également copier et coller sur la ligne de commande au lieu d'un script shell)
#!/bin/bash
cat sequence.txt > sequence2.txt
for int in 15 12 9 6 3
do
echo "$(sed -E "s/(^.{$int})/\1-/g" sequence2.txt)" > sequence2.txt
done
##Tous les 3 caractères"-"Insérer
## sequence.txt -> ("-"Insérer) -> sequence2.txt
Résultat d'exécution
$ cat sequence.txt
xxxx5xxx10xxx15
xx3xx6xx9x12x15
xxxxAxxxxAxxxxA
xxAxxAxxAxxAxxA
$ ./insert.sh ; cat sequence2.txt
xxx-x5x-xx1-0xx-x15-
xx3-xx6-xx9-x12-x15-
xxx-xAx-xxx-Axx-xxA-
xxA-xxA-xxA-xxA-xxA-
sed -E" s / (^. {$ Int}) / \ 1- / g "sequence2.txt> sequence2.txt
Normalement, le contenu de ** sequence2.txt ** sera vide si vous faites comme ça, mais en définissant <br>, ** sequence2 Vous pouvez écraser .txt ** sans être vide et en sortie. <br> <br> <font color = gray> (Les données vides sont affichées en premier lieu lorsque
> sequence2.txt est exécuté, et l'opération ** vide le contenu de ** sequence2.txt avant
sed** Parce que c'est fait (en conséquence, il est
sedde vider les données). ʻEcho "$ (commande)"
Le contenu de ʻsont exécuté avant> sequence2.txt
, donc ceci écrasera avec succès ** sequence2.txt **) </ font> $ int
** de l'instruction for dans la commande sed
, vous devez utiliser""
(utiliser''
est une variable dans la variable. Parce qu'il est reconnu comme une simple chaîne de caractères)Il semble y avoir diverses autres méthodes pour générer le fichier avec le même nom, donc si vous êtes intéressé, veuillez vous référer au lien ci-dessous. (1er lien)
Concernant> 1.
Traitez le fichier avec bash et écrasez le résultat avec le même fichier
Redirection vers un fichier du même nom
Concernant 2.
[[bash] Différence entre "" "," \ '"et" "" -Plutôt école de riz](https://blog.goo.ne.jp/01_mai/e/ a4f9f01fb647066d0c7eb37e8ae0a254)
Recommended Posts