J'ai un script qui produit le texte suivant. Il s'agit de la sortie d'un modem Netopia 2210-02 ADSL2 .
ADSL Line State: Up
ADSL Startup Attempts: 1
ADSL Modulation: DMT
ADSL Data Path: Fast
Datapump Version: DSP 7.2.3.0, HAL 7.2.1.0
SNR Margin: 8.20 9.00 dB
Line Attenuation: 57.50 31.00 dB
Output Power: 17.09 12.34 dBm
Errored Seconds: 0 0
Loss of Signal: 0 476
Loss of Frame: 0 0
CRC Errors: 57921 416
Data Rate: 2880 1024
Comment supprimer le caractère de fin de ligne pour chaque ligne? Je voudrais que la sortie ressemble à ceci (oui, c'est moche):
ADSL Line State: Up ADSL Startup Attempts: 1 ADSL Modulation: DMT ADSL Data Path: Fast Datapump Version: DSP 7.2.3.0, HAL 7.2.1.0 SNR Margin: 8.20 9.00 dB Line Attenuation: 57.50 31.00 dB Output Power: 17.09 12.34 dBm Errored Seconds: 0 0 Loss of Signal: 0 476 Loss of Frame: 0 0 CRC Errors: 57921 416 Data Rate: 2880 1024
J'ai essayé des solutions comme celle-ci, mais elles ne fonctionnent pas:
# (This simply outputs the contents of the script, unmodified)
stefanl@hosta:~/Work/Cacti $ ./script | sed -e 's/$//'
J'ai aussi essayé d'utiliser tr
. Je m'attendais à ce que la commande suivante remplace chaque caractère de nouvelle ligne par le caractère espace. Cela prendrait les multiples lignes et les combinerait en une seule longue ligne. Au lieu de cela, cela n'affiche que la dernière ligne de sortie. Il semble remplacer chaque ligne suivante par la ligne de sortie suivante.
stefanl@hosta:~/Work/Cacti $ ./script | tr '\n' ' '
Data Rate: 2880 1024stefanl@hosta:~/Work/Cacti $
stefanl@hosta:~/Work/Cacti $
Mise à jour :
Après un examen plus approfondi, il semble que chaque ligne soit précédée d'un caractère de retour. Cela apparaît comme ^M
lors de l'utilisation less
. J'ai donc ajouté deux tr
déclarations. Un pour supprimer les caractères de nouvelle ligne, un pour supprimer le caractère de retour.
./script | | tr -d '\n' | tr -d '\r'
tr '\n' ' '
ettr -d '\n'
envelopperont la ligne d'une manière étrange. J'ai mis à jour ma question pour afficher les résultats. Donc, je dois peut-être utilisertr
, mais j'ai juste besoin de comprendre comment l'utiliser correctement.