J'essaie d'échapper aux backslashes en cygwin, mais il semble presque impossible
J'ai essayé beaucoup de choses, mais personne ne fonctionne bien .. plus précisément, j'ai besoin d'obtenir une commande pour recevoir une entrée dans BASH sans
Perdre les caractères de barre oblique inverse. Chaque fois que j'essaie de passer un argument,
Les backslashes disparaissent toujours, détruisant mon intrant. Et je ne sais pas
Comment puis-je lui dire de laisser simplement les backslashes sur l'entrée seule. P> J'ai essayé ce qui suit, mais non plus de travail p> d'ailleurs, je veux pouvoir taper c: \ users \ ted \ music \ Enigma sans
devis. Un de ces alias fonctionne lors de l'utilisation de citations. P> TED P> P>
6 Réponses :
Veuillez lire la section intitulée citating à bash (1) ( Dans votre premier exemple, P> homme bash code>).
cygpath C:/Users/Ted/Music/Enigma
Intéressant, le problème est que je voudrais vraiment pouvoir coller des chemins Windows dans la ligne de commande comme ils sont. Si je voulais avoir les barres à barres au lieu des backslashes, je devrais les changer moi-même en quelque sorte. Quoi qu'il en soit, merci pour votre aide.
J'ai eu un problème similaire lors de la lecture d'un chemin de Windows Explorer collé dans la ligne de commande: la commande "lecture -r xyz" (avec arg. "-r") ne fait pas Interprète les barres obliques simples dans le chemin collé. p> vittorio p> p> p>
Parfois, il est utile de donner des manuels des programmes utilisés :-). De Cette option préserve en effet la ligne entière de même. Essayez: p> le "-0" le fait pour vous! P> Notez que pour plus d'une ARG, vous devez zéro-terminer les arguments, car Exemple de man xargs code>:
Rechercher ... -Print0 code> ou
grep ... --NULL code>. p> p>
Vos backslashes seront supprimés avant que la corde ne soit jamais sur Xargs.
@Bobbogo Votre observation a été correcte pour la réponse originale, mais je pense que c'était juste une surveillance. L'idée d'utiliser -0 code> est très utile (et j'avais oublié que l'option conserve tous les caractères spéciaux i>), j'ai donc pris la liberté pour résoudre l'erreur que vous avez souligné afin de rendre la réponse plus utile comme un plan.
Je perdais mon esprit en train de déboguer pourquoi je ne pouvais pas obtenir sed code> pour convertir des choses jusqu'à ce que cela m'a montré que c'était le dernier
xarg code> qui manglait des choses. Son moins sur la lecture du manuel est davantage de ne pas traiter chaque partie de la commande qui ne fonctionne pas avec une suspicion égale.
J'ai eu le même problème, lors de la conversion de noms de fichiers tels que C: \ Dirname vers UNIX en utilisant CYGPATH, je reçois C: Dirname et même Wheir Stuff. P>
se révèle, cependant, que mon problème était les noms de fichiers que j'utilisais étaient entrés par les utilisateurs que je récupère avec la commande "Lecture". La lecture, pas la cygpath, causait mes problèmes en lançant la barre oblique inverse. "Lire -r" corrige le problème. P>
Essayez: xargs -0 fort> option explication (de gnu.org ): p> " Les noms de fichier d'entrée sont terminés par un caractère null au lieu de blancheur. et toutes les guillemets et les caractères de barre oblique inverse ne sont pas considérés comme spéciaux (chaque caractère est pris littéralement). Désable à la chaîne de fin de fichier, qui est traitée comme tout autre argument. " EM> P> P> P> P> P> P> P> P > Vous pouvez également y parvenir avec Sed : P > echo C:\\Users\\Ted\\Documents\\Unix\\Scripts | xargs echo
Je reconnais que cette réponse est assez tardive à la fête ... mais je suis tombé sur cette question tout en ayant le même problème moi-même. P>
J'utilisais "Xargs" à partir d'une installation Cygwin - et je l'appelle à partir d'un Pour moi, j'ai simplement utilisé l'utilitaire Cela a complètement résolu mon "problème de barres à barres". p> CMD.EXE ordinaire CODE> shell. P>
tr code> dans le dossier Cygwin: P>
dir / b / s / a * .txt | tr "\\" "/" | Xargs ... code> p>
J'ai eu le même problème. Je voulais exécuter "dir / b / s * .txt" pour obtenir un ensemble de noms de fichiers, puis les tuyer à Xargs pour le traitement, mais la sortie Backslash de la commande Windows Dir n'a pas joué bien avec Xargs. À la fin, j'ai utilisé "Trouver" -Name * .txt "à la place, qui utilise des esclaves avant. (J'utilise Xargs et trouvez depuis le package Cygwin, mais dans une coquille Windows CMD.)
Définissez l'option
x code> pour voir exactement comment Bash i> munisse vos chaînes. Il suffit d'émettre
SET -X code>.