Puis-je faire en sorte que grep s'échappe multiligne en une seule ligne?

Comment puis-je faire des outils comme grep traiter les multilignes avec une barre oblique inverse comme une simple ligne?

Disons que j'ai des files qui ressemblent à ceci:

 testvar=test1 \ test2 \ test3 othervar=oth1 \ oth2 

Si je suis maintenant grep pour testvar, il returnnera testvar=test1 \ , mais y a-t-il un moyen je peux le faire revenir testvar=test1 test2 test3 ?

Plus ou less comment traiter ces lignes échappées multiples comme une seule ligne?

Note : Si cela ne peut pas être fait avec grep , des conseils sur la façon de le faire avec d'autres outils comme sed ou awk pour get le même résultat sont également les bienvenus.

Avec awk définissez le séparateur de champs et enregistrez les séparateurs dans votre cas d'utilisation:

 awk 'BEGIN { FS="\n"; RS ="" } /testvar/' yourfile testvar=test1 \ test2 \ test3 

Reportez-vous à l'input manuelle pour plusieurs loggings de ligne .

Vous pouvez le pré-traiter avec quelque chose qui rejoint ces lignes, comme:

 awk 'match($0,/\\+$/) && RLENGTH % 2 { sub(/\\$/,""); printf "%s", $0; next } {print}' | grep ...