J'ai un répertoire avec des fichiers qui ressemblent à ceci:BASH: Trouver le nom de fichier numéro le plus élevé dans un répertoire où les noms commencent par des chiffres (ls, sed)
001_something.php 002_something_else.php
004_xyz.php 005_do_good_to_others.php
Je veux finalement créer un nouveau, PHP vide fichier dont le nom commence par le numéro suivant de la série.
LIST=`exec ls $MY_DIR | sed 's/\([0-9]\+\).*/\1/g' | tr '\n' ' '`
Le code précédent me donne une chaîne comme ceci:
LIST='001 002 004 005 '
Je veux saisir cette 005, incrément par un, puis utiliser ce numéro pour générer le nouveau nom de fichier. Comment est-ce que je fais cela dans BASH?
Est-ce à exécuter dans le cadre d'une application web? Si le serveur Web accepte plusieurs requêtes simultanées (la plupart le font), comment allez-vous vous protéger contre la condition de concurrence lorsque les processus A et B effectuent la vérification simultanément et créent ensuite un fichier avec le même numéro? – telent
Non, cela faisait partie d'un script shell pour émuler l'outil 'generate migration' des rails, pour une application php qui utilise une implémentation rousse-stepchild du modèle de migration de base de données. – Jake