Forum Programmation.shell Problème sed

Posté par  . Licence CC By‑SA.
Étiquettes :
0
6
juil.
2023

Bonjour,
Je souhaite modifier le fichier ci-dessous et ajouter dans la ligne condition avant le /1 /6 et /4 le trigramme TST afin d'avoir un résultat de cette manière tout en gardant le contenu du fichier :

VariableXXXXTST/1

Auriez-vous une idée svp ?

Test.txt =

Extrait 1
Definiton : insert-ligne
Condition = machine/dev
Descritption : définition ligne

Extrait 2 :
Definiton 2 : insert-
Condition = machine-dev. OODEF VariableXXXX/1
Descritption : définition ligne

Extrait 3 :
Definiton 1 : insert-ligne (…)

Forum Programmation.shell SED : Remplacer sous conditions...

Posté par  . Licence CC By‑SA.
Étiquettes :
0
14
avr.
2021

Bonjour,

voilà, j'ai des gros fichiers à plat qui présente des données date, texte, alphanumérique, montants, …

Or, j'ai un SGB pour les exploiter et il bloque sur l'interprétation des fichiers pour une simple raison : Le format du champ numérique n'accepte pas les espaces et le séparateur de décimale est le point.

Du coup, je tâtonne avec sed pour passer de (mon fichier source):
TABLE;MODELE K568 IGNI;ELEC;1 256,34;20/05/2020;18/12/2020;HJ6KRL4;753261552
A ça (résultat grandement désiré) :
TABLE;MODELE K568 IGNI;ELEC;1256.34;20/05/2020;18/12/2020;HJ6KRL4;753261552

Ou j'ai (…)

Forum Programmation.shell Je ne pipe rien à ce pipe

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
5
11
avr.
2020

J'ai une commande dont je voudrais filtrer une certaine ligne :

$ sudo dnf history | head
ID   | Ligne de commande        | Date et heure    | Action(s)      | Modifié
-------------------------------------------------------------------------------
1024 | install gammaray         | 2020-04-11 01:18 | Install        |    7
1023 | update                   | 2020-04-10 19:03 | Upgrade        |   51
1022 | update --refresh         | 2020-04-09 18:35 | Upgrade        |    1
1021 | update                   | 2020-04-08 19:19 
(…)

Forum Programmation.shell Formater fichier de sortie vers colonnes CSV

Posté par  . Licence CC By‑SA.
Étiquettes :
1
30
juil.
2019

Bonjour à tous,

Je cherche de l'aide.
J'ai un fichier généré par SQL, sur lequel j'aimerai séparer les lignes existantes, vers un format de type "Colonne CSV".
Je sais que SQL peut sortir un CSV directement, mais les contraintes de l'environnement sur lequel je travaille m'obligent à passer par un fichier "temporaire"
Je n'arrive pas à trouver la bonne technique pour modifier ce formatage.

Ci-dessous l'exemple de fichier, je souhaite le "transformer" en un CSV séparé par des "," par (…)

Journal Ligne de commande : les 20 mémos d'un « autodidacte »

Posté par  (site web personnel) . Licence CC By‑SA.
44
4
oct.
2018

Depuis avril 2018 j'ai eu l'occasion de publier sur le Grimoire-Command.es les 20 mémos du précédent secrétaire de Gebull (le LUG de Bressuire).

Les sujets abordés sont variés et représentent quelques décennies de lecture de forum et de tâtonnements, scrupuleusement notés et repris en fiches synthétiques.

Comme le reste du grimoire, ce sont des mémos, des penses-bêtes, pour retrouver rapidement une commande que l'on a déjà utilisée ou aperçue. Comme pour les grimoires de jeux de rôle, il faut donc (…)

Forum Programmation.shell Sed et les caractères spéciaux

Posté par  . Licence CC By‑SA.
Étiquettes :
0
17
sept.
2017

Bonjour à tous.tes,

Je travaille sur de gros fichiers textes dans lesquels je souhaite garder certains caractères et en supprimer d'autres.
Les caractères à supprimer ne sont pas connus d'avance mais après une opération de filtrage je les sauvegarde dans une variable.

La variable qui contient les caractères à supprimer est, dans le cas qui m'intéresse, égale à :
°,!/.·"«»()[]@…0123456789

Voici le code que j'ai tenté d'utiliser pour supprimer tous ces caractères de mon gros fichier texte mais qui ne (…)

Forum général.général [sed] Remplacer du texte contenu dans une variable et contenant des () et *

Posté par  (site web personnel) . Licence CC By‑SA.
1
20
mai
2017

Edit du 22/05/17 à 12h30 : J'en suis là

Quand je fais :

sed -i -e "s/TRUC:(1000)\*80/TRUC:(1000)\*99/" fichier

Le fichier est correctement modifié. Mais avec le code suivant, ça ne marche pas, le fichier n'est pas modifié :

old_value="(1000)\*80"
new_value="(1000)\*99"
sed -i -e "s/TRUC:'$old_value'/TRUC:'$new_value'/" fichier

Post original :

J'ai plusieurs fichiers de config. à modifier comme suit :

config.js :

param_un:valeur_1,
param_deux:valeur_2,

Pas trop dur :

param_a_modifier="param_un"
ancienne_valeur="valeur_1"
nouvelle_valeur="valeur_3"
sed -i -e 's/${param_a_modifier}:${ancienne_valeur}/${param_a_modifier}:${nouvelle_valeur/' config.js

Jusque là tout va bien. Sauf (…)

Forum Programmation.shell CSH : Remplacement de mots dans un fichier à partir d'un fichier CSV de correspondance

Posté par  . Licence CC By‑SA.
Étiquettes :
0
28
avr.
2016

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="(. (…)

Travailler avec des expressions rationnelles

84
8
fév.
2016
Technologie

Les expressions rationnelles sont un outil d’analyse de texte par un ordinateur. Elles permettent de décrire des enchaînements de caractères d’une complexité suffisamment grande pour être réellement utiles, mais suffisamment faible pour être implémentées efficacement. Elles sont d’une importance capitale pour le théoricien des langages comme pour l’UNIX power user.

Dans cette dépêche, nous :

  • décrivons brièvement la notion abstraite d’expression rationnelle et recensons les implémentations les plus courantes sur un système Unix ;
  • présentons quelques commandes permettant de rechercher des motifs décrits par une expression rationnelle dans un texte, réécrire des fichiers automatiquement ou transformer et analyser des fichiers structurés automatiquement en utilisant des expressions rationnelles ;
  • montrons comment améliorer votre productivité avec Emacs grâce aux expressions rationnelles.

Dans cette dépêche, nous allons nous pencher sur les expressions rationnelles (souvent nommées abusivement expressions régulières suite à une traduction littérale de regular expression). Elles permettent de représenter formellement un motif de recherche, par exemple : un caractère alphabétique majuscule suivi de quatre caractères minuscules, puis deux chiffres et un point à la fin. Les expressions rationnelles représentent un outil puissant pour qui sait les utiliser à bon escient mais nécessitent une phase d’apprentissage non négligeable. La diversité des moteurs et des syntaxes n’aide pas non plus à leur simplicité, et les confusions entre les différents outils peuvent parfois donner des résultats surprenants.

Forum Programmation.shell Addition d'un nombre d'occurences selon une chaine de caractère

Posté par  . Licence CC By‑SA.
Étiquettes :
0
13
août
2015

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 (…)

Journal Lire de fichiers de configuration depuis un script shell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
5
juin
2015

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
(…)