salut,
une façon de faire, parmi d'autres :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $0 ~ "^[ \t]*" PATTERN ":[ \t]*$" {
z = 4
next
}
z && /(Type|Description|Default):/ {
z--
FS = ":[ \t\x27]*"
s = s $2 ","
}
z == 1 {
z--
print substr(s, 0, length(s)-2)
} |
ou en oneliner :
awk -vPATTERN="Test1" '$0 ~ "^[ \t]*"PATTERN":[ \t]*$" {z=4;next} z && /(Type|Description|Default):/ {z--;FS=":[ \t\x27]*";s=s$2","} z==1 {z--;print substr(s,0,length(s)-2)}' fichier
et le résultat :
1 2 3 4 5 6 7
| $ awk -vPATTERN="Test1" -f script fichier
Number,ceci est le test1,123
$ awk -vPATTERN="Test2" -f script fichier
String,ceci est le test2,456
$ awk -vPATTERN="coincoin" -f script fichier
$ awk -vPATTERN="Test" -f script fichier
$ awk -vPATTERN="Test1:" -f script fichier |
Partager