Articles of bash

Bash: un moyen facile de passer une chaîne “brute” à grep?

grep ne peut pas être alimenté avec des chaînes “brutes” à partir de la ligne de commande, car certains caractères doivent être échappés pour ne pas être traités comme des littéraux. Par exemple: $ grep ‘(hello|bye)’ # WON’T MATCH ‘hello’ $ grep ‘\(hello\|bye\)’ # GOOD, BUT QUICKLY BECOMES UNREADABLE J’utilisais printf pour les chaînes auto-escape: […]

Date d’parsing dans Bash

Comment parsingriez-vous une date dans bash, avec des champs séparés (années, mois, jours, heures, minutes, secondes) en différentes variables? Le format de la date est: YYYY-MM-DD hh:mm:ss

Exécuter la commande vim à partir de la ligne de commande

Il y a beaucoup de questions SO sur l’exécution de programmes shell à partir de vim. Ce que je me demande, c’est s’il est possible de faire l’inverse – c.-à-d. $ vim :BundleInstall Par exemple, pour me permettre d’exécuter BundleInstall dans le cadre d’un script, plutôt que d’ouvrir Vim et de l’exécuter manuellement lors de […]

Comment obtenir le nombre de lignes affectées lors de l’exécution de la requête MySQL depuis bash?

Je sais comment on peut exécuter des requêtes / commandes MySQL depuis bash: mysql -u[user] -p[pass] -e “[mysql commands]” ou mysql -u[user] -p[pass] `<<`QUERY_INPUT [mysql commands] QUERY_INPUT Comment puis-je capturer le nombre de lignes affectées par la requête? J’ai essayé de faire: variable=’`mysql -u[user] -p[pass] -e “[mysql commands]”`’ Il exécute la commande mais ne renvoie […]

Exécution de programmes en parallèle à l’aide de xargs

J’ai actuellement le script actuel. #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done Je souhaite l’exécuter en parallèle en utilisant xargs. j’ai essayé script.sh | xargs -P8 Mais faire ce qui précède ne s’exécute qu’une fois à la fois. Pas de chance avec -n8 aussi. Ajouter et à la fin […]

Utilisation d’une apostrophe (guillemet simple) dans un message de validation git via la ligne de commande?

En essayant d’aller plus loin, comment cela pourrait-il fonctionner dans un shell bash standard: git commit -m ‘cracked enigma’s code’ Est-ce que cela pourrait être fait simplement avec une barre oblique inverse comme ceci: git commit -m ‘cracked enigma\’s code’ De plus, comment utiliser les guillemets doubles? Aussi par backslash-échapper? Est-ce que ce serait la […]

Liste du contenu d’un fichier tar ou d’un répertoire uniquement jusqu’à un certain niveau

Je me demande comment lister le contenu d’un fichier tar uniquement à un certain niveau? Je comprends que tar tvf mytar.tar va lister tous les fichiers, mais parfois je voudrais seulement voir les répertoires à un certain niveau. De même, pour la commande ls , comment contrôler le niveau des sous-répertoires qui seront affichés? Par […]

Pourquoi bash “echo ” entraîne-t-il “t” pas “”

Cela se produit pour le caractère t et la racine de valeur. Assez perplexe $ echo [s] [s] $ echo [t] t $ echo [ t ] [ t ] $ echo [root] t

Obtenir une variable d’environnement à partir du conteneur Docker

Quel est le moyen le plus simple d’obtenir une variable d’environnement à partir d’un conteneur de station d’accueil qui n’a pas été déclaré dans le fichier Docker ? Par exemple, une variable d’environnement qui a été définie par le biais d’une session docker exec container /bin/bash ? Je peux faire docker exec container env | […]

Processus de fourrage / multi-fileté | Frapper

Je voudrais rendre une section de mon code plus efficace. Je pense à le transformer en plusieurs processus et à les exécuter 50/100 fois, au lieu d’une seule fois. Par exemple (pseudo): for line in file; do foo; foo2; foo3; done Je voudrais que cette boucle fonctionne plusieurs fois. Je sais que cela peut se […]