J'ai un fichier journal binaire avec des lignes similaires qui sont séparées par le caractère "^ A" non imprimable.commande linux pour déplacer une partie d'une chaîne avec un caractère non imprimable
Je vois ce symbole blanc rétro-éclairé quand j'ouvrir le fichier avec la commande « moins »
blah9234^Azzz123^A1=123
blah6344^Azzz123^A1=456
blah4555^Azzz123^A1=78912
Je dois le convertir en:
zzz123^A1=123^Ablah9234
zzz123^A1=456^Ablah6344
zzz123^A1=78912^Ablah4555
donc je besoin de prendre la première partie
blah9234
Ajouter un symbole non imprimable^A
^Ablah9234
et le mettre dans la ligne et
zzz123^A1=123^Ablah9234
pour commencer que j'ai essayé d'ajouter^A au début de la ligne:
sed 's/^.*blah/^Ablah/' my.log > new.log
mais il ajoute que «^'et' A 'et j'ai:
^Ablah9234^Azzz123^A1=123
et d'abord^A ne rétro-éclairé blanc dans moins de visionneuse.
Un conseil serait utile. Merci.
Ceci devrait fonctionner 'sed 's/^ \ (blah [^' $ '\ 001' '] \ + \)' $ '\ 001' '\ (. * \) $/\ 2' $ '\ 001 '' \ 1/'my.log> new.log' – alvits
Si vous n'aimez pas l'occurence multiple de '$' \ 001'' vous pouvez utiliser' sed $ 's/^ \\ (blah [^ \ 001 ] \\ + \\) \ 001 \\ (. * \\) $/\\ 2 \ 001 \\ 1/'my.log> nouveau.log'. – alvits
Ou si votre 'sed' supporte l'expression étendue, essayez' sed -r $ 's/^ (blah [^ \ 001] +) \ 001 (. *) $/\\ 2 \ 001 \\ 1 /' mon. log> nouveau.log'. – alvits