Mon fichier contient:
Mon script:
#!/bin/sh test=`grep 'xyz' file` echo $test
Cela me donne la sortie comme
Je veux ma sortie comme
name="hello" desc="hello" name="hello1" desc="hello1" name="hello2" desc="hello2"
grep
aime ces choses:
$ grep -Po '(?<=
-Po
Utilisez les expressions régulières Perl ( -P
) et n'imprimez que les correspondances ( -o
). (?<=
-
(?<= commence à capturer après la chaîne .
-
[^/]*
correspondre tous les caractères au caractère /
.
Vous pouvez également essayer cette commande sed
,
sed -r 's/^ .*$/\1\n\2\n\3/g' file
Sortie:
name="hello" desc="hello" name="hello1" desc="hello1" name="hello2" desc="hello2"
Avec GNU awk pour RS multi-char:
$ awk -v RS='/>' 'sub(/^