Lien The etymology of command line tools

Voici une implémentation de TapTempo encore plus compacte que l'indigeste one-liner Perl précédent (https://linuxfr.org/users/zerodeux/journaux/taptempo-en-une-ligne), elle vous est offerte par Loïc Cerf qui me l'a soumise et me propose de vous la partager.
J'ai donc l'honneur de vous transmettre sa solution en 97 caractères :
$ awk '{system("date +%s%N")}'|awk '{t[++k]=$0}k>5{r=k-5}k>1{printf"%i",6e10*(k-r-1)/($0-t[r+1])}'
Le comportement est identique à celui de la ligne Perl de Vincent. Elle considère notamment le temps il y a cinq tapes sur la touche Entrée, moins (…)
Bonjour à tous,
Je voudrais modifier un associer une valeur à une variable avec awk en utilisant une autre variable (définie au début du programe). Voici un exemple simple qui illustre ce que je voudrais faire :
Pour le moment j’exécute la commande suivante :
Re_tau_fr=$(awk 'FNR==119{print 0.0029846/$43*sqrt($39/$17*$2/($1))}' $moyenne_actuelle)
Je voudrais pouvoir changer le coefficient multiplicateur facilement en début de fichier, c'est à dire faire quelque chose comme :
coeff="0.0029846"
Re_tau_fr=$(awk 'FNR==119{print $coeff/$43*sqrt($39/$17*$2/($1))}' $moyenne_actuelle)
En utilisant BEGIN j'y arrive mais (…)
Bonjour,
Je suis bloqué sur un script et je ne sais pas comment m'en sortir. Je sollicite donc votre aide.
J'ai un script qui me permet d'afficher avec une mise en page des informations provenant de plusieurs CSV.
Voici le script :
cat /var/www/cgi-bin/LPAR_MAP/*.csv | grep foo | awk -F',|;' '{print $2","$5","$6","$7}' | awk '{
print "LPARS :" $2
print "RAM : " $5
print "CPU 1 : " $6
print "CPU 2 : " $7
}'
Ce script (…)
Bonjour à tous,
J'ai une liste de fichiers textes contenant des valeurs séparées par des ; . Dans ces fichiers je dois remplacer la valeur de colonne 8 pour les lignes commençant par la valeur PAR.
Pour le moment j'utilise cette commande
Malheureusement sa marche pas vraiment, j'ai cette erreur
for i in `ls *.txt`; do cat $i | awk -i inplace -F";" '{ if($1=="PAR") {gsub("[^0-9]","3027008440109",$8);print} }'; done
(…)
awk: inplace:47: avertissement : inplace_begin : modification sur place annulée pour le fichier incorrect « - »
Salut !
Ce journal s'inscrit dans la série des journaux traitant de portages de taptempo.
Pour bien commencer la semaine, je voulais proposer une alternative à taptempo sous forme de filtre. Ma version d'un compteur de tempo se base sur l'outil xev
et ne possède aucune option. Il est plus rapide de modifier directement le script que d'en modifier.
Pour moi c'est l'occasion de présenter awk
, un langage de script relativement peu connu/utilisé alors qu'il est très intéressant. Il (…)
J’utilise grep pour filtrer selon un motif et re-diriger le résultat vers un fichier.
Je voudrais qu’un deuxième fichier soit généré, contenant lui les lignes ne correspondant pas au motif, le fichier complémentaire en quelque sorte.
Je peux m’en sortir en appelant deux fois grep, ou en utilisant diff, ou d’autres méthodes j’imagine, mais je voudrais savoir s’il y a une méthode plus élégante/concise/efficiente de faire cela. Je vais être honnête : je cherche LA bonne manière de faire pour (…)
Bonjour,
Ce forum m'a bien aidé jusque là dans ma découverte du shell mais là je bloque.
Je suis nouvellement admin réseau et j'ai 2 fichiers .csv que je veux fusionner.
identifiants2015.csv
$cat identifiants2015.csv
CLASSE,NOM,PRENOM,IDENTIFIANT,M.de P.
c601,A,antoine,antoine.a,4f56yg
c504,B,micheline,micheline.b,654pgh
identifiants2016.csv
$cat identifiants2016.csv
CLASSE,NOM,PRENOM,LOGIN,MOT DE PASSE
c601,Z,bob,bob.z,t954fd
c502,A,antoine,antoine.a,(déjà attribué)
c404,B,micheline,micheline.b,(déjà attribué)
Et je voudrais obtenir ceci en remplaçant "(déjà attribué)" par le mot de passe 2015.
logins2016_maj2016.csv
$cat logins_maj2016.csv
CLASSE,NOM,PRENOM,LOGIN,MOT DE PASSE
c601,Z,bob,bob.z,t954fd
c502,A,antoine,antoine.a,4f56yg
c404,B,micheline,micheline.b,654pgh
Je me doute qu'il y a quelque (…)
Bonjour,
Je cherche à alimenter une base RRD avec la sortie de la commande vmstat (sous Linux). J’ai créé ma base RRD et je peux l’alimenter manuellement, je n’ai pas de problème de ce côté là.
La commande suivante me sort un enregistrement avec lequel je devrais pouvoir alimenter ma base, toutes les secondes. J’utilise le caractère nul comme séparateur, ce n’est probablement pas une nécessité dans mon cas (donnée RRD…) mais j’ai de toute façon le même comportement en (…)
Bonjour,
J'ai un fichier XML évolutif au sein duquel j'aimerais remplacer des noms de ville à partir d'identifiant contenu dans une table de correspondance. pour chaque occurence du fichier.
exemple : table de correspondance
PARIS;75000
BORDEAUX;33000
J'étais parti sur un sed mais j'ai beau creuser je ne trouve pas.
Quelqu'un peut il m'aider SVP.
A votre disposition si vous avez besoin d'informations complémentaires.
J'ai déjà la boucle
while read line
do
var1=$( echo "$line" | sed -n -E 's/.Station="(. (…)
Cher journal,
J'aime bien lire sur ce site les histoires de création de carte comme celle-ci ou celle-là, alors je vais te conter la mienne.
Partant d'une question pertinente : "Est-il facile de se ravitailler en GPL en France", j'en suis venu à une question idiote : "Est ce qu'il y a une grande différence des prix du carburant en fonction d'où on habite".
J'imagine une carte de France des points de vente, catégorisés en (…)
Bonjour,
Je suis bloqué sur un petit script en shell. Je récupère dans un fichier txt des entrées comme ci dessous :
120 facebook.fr
32 linuxfr.org
Lorsque je lance mon script avec le cron, j'ai du coup la même chose mais plusieurs fois puisque les résultats s'ajoutent au fur et à mesure du resultat.txt :
120 facebook.fr
32 linuxfr.org
64 facebook.fr
12 linuxfr.org
Je souhaiterai donc pouvoir additionner les nombre d'occurences quand les noms de domaines sont identiques, soit au (…)
Bonjour à tous,
je ne trouve pas de solution pour mettre en paramètre la commande que il se doit.
Contexte dans le répertoir /tmp nous avons des fichiers du type
XXX.TTTT.DAYLY
XXX.TTTT.WEEKLY
XXX.TTTT.MOUNTHLY
Le but et de recopier l'ensemble des fichier en remplaçant la chaîne TTTT par YYYY nous aurons comme résultat:
XXX.YYYY.DAYLY
XXX.YYYY.WEEKLY
XXX.YYYY.MOUNTHLY
A=`ls /tmp/XXX.TTTT* | cut -d. f3`
n=`ls XXX.TTTT.* | wc -l`
awk
#mais nous ne connaissons pas
(…)
La petite technique shell du vendredi. Pour lire un fichier de configuration du style INI depuis un script shell, on peut utiliser le petit script sed suivant
1 {
x
s/^/default/
x
}
/^#/n
/^\[/ {
s/\[\(.*\)\]/\1/
x
b
}
/=/ {
s/^[[:space:]]*//
s/[[:space:]]*=[[:space:]]*/|/
G
s/\(.*\)\n\(.*\)/\2|\1/
p
}
Il transforme
# last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.
[database]
# use IP address in case network name resolution is not working
server=192.0.2.62
port=143
(…)