Construction fichier à partir d'un autre via la commande SED
Résolu
Altonero
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais construire un fichier à partir d'un autre fichier j'essaie la commande "sed" mais je n'y arrive pas.
Merci pour votre aide.
Fichier input.txt :
fichier output.txt
Je voudrais construire un fichier à partir d'un autre fichier j'essaie la commande "sed" mais je n'y arrive pas.
Merci pour votre aide.
Fichier input.txt :
"_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
"shortDescription" : "Lancé par une alarme périodique"
}
]
},
{
"_class" : "hudson.model.ParametersAction",
"parameters" : [
{
"_class" : "hudson.model.StringParameterValue",
"name" : "VERSION",
"value" : "5.3.0.4"
},
{
"_class" : "hudson.model.StringParameterValue",
"name" : "DISTRIB",
"value" : "pfa"
},
{
"_class" : "hudson.model.StringParameterValue",
"name" : "APPLI_BRANCH",
"value" : "br_mnt_3.5.11"
},
{
"_class" : "hudson.model.StringParameterValue",
"name" : "INFRA_BRANCH",
"value" : "hotfix/4.4.2"
},
{
"_class" : "hudson.model.StringParameterValue",
"name" : "CONFIG_BRANCH",
"value" : "hotfix/4.4.2"
},
{
"_class" : "hudson.model.BooleanParameterValue",
"name" : "SKIP_INFRA",
"value" : false
},
{
fichier output.txt
VERSION : 5.3.0.4
APPLI_BRANCH : br_mnt_3.5.11
INFRA_BRANCH : hotfix/4.4.2"
CONFIG_BRANCH : hotfix/4.4.2"
Configuration: Windows / Firefox 60.0
1 réponse
-
Salut,
j'essaie la commande "sed" mais je n'y arrive pas
C'est à dire ? Qu'as-tu essayé de faire ?
-
j'ai essayé
sed -n 's/.*"VERSION":\([\"A-Za-z][0-9]*\),.*/\1/p'
mais ça n'a pas l'air d'être bon.
Merci pour ton aide- SED est un éditeur de flux, et par conséquent il ne lit et ne traite qu'une ligne à la fois, sauf si on stipule une plage d'adresses ou, et c'est ton cas, si on lui dit de lire et de charger la ligne suivante (commande "N") dans son buffer principal.
sed -n '/VERSION\|\(APPLI\|INFRA\|CONFIG\)_BRANCH/{N;s/.*: "//Mg;s/[,"]//g;s/\n/ : /p}' fichier
VERSION : 5.3.0.4
APPLI_BRANCH : br_mnt_3.5.11
INFRA_BRANCH : hotfix/4.4.2
CONFIG_BRANCH : hotfix/4.4.2
-
Merci zipe31,
Puis-je filtrer que sur les chaînes suivantes puisque dans le fichier input il y a d'autres lignes avec VERSION
exemple :
{ "_class" : "hudson.model.StringParameterValue",
"name" : "FORCE_VERSION",
"value" : "" }
$ sed -n '/VERSION\|\(APPLI\|\|CONFIG\)_BRANCH/{N;s/.*: "//Mg;s/[,"]//g;s/\n/ : /p}' output.txt
VERSION : 5.3.0.4
APPLI_BRANCH : br_mnt_3.5.11
INFRA_BRANCH : hotfix/4.4.2
CONFIG_BRANCH : hotfix/4.4.2
FORCE_VERSION :
REMOVE_EXISTING_VERSION : value : true
VERSION_PFA : 1.6.1
sortie voulu :
VERSION : 5.3.0.4
APPLI_BRANCH : br_mnt_3.5.11
INFRA_BRANCH : hotfix/4.4.2
CONFIG_BRANCH : hotfix/4.4.2 -
-