다음 텍스트를 출력하는 스크립트가 있습니다. 이것은 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
각 줄의 줄 끝 문자를 어떻게 제거합니까? 출력이 다음과 같이 보이기를 원합니다 (예 : 추악합니다).
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
나는 이와 같은 해결책을 시도했지만 작동하지 않습니다.
# (This simply outputs the contents of the script, unmodified)
stefanl@hosta:~/Work/Cacti $ ./script | sed -e 's/$//'
나는 또한 사용하려고했다 tr
. 각 줄 바꿈 문자를 공백 문자로 바꾸려면 다음 명령이 필요했습니다. 이것은 여러 줄을 가져 와서 하나의 긴 단일 줄로 결합합니다. 대신, 이것은 마지막 출력 라인 만 표시합니다. 각 후속 줄을 다음 출력 줄로 덮어 쓰는 것 같습니다.
stefanl@hosta:~/Work/Cacti $ ./script | tr '\n' ' '
Data Rate: 2880 1024stefanl@hosta:~/Work/Cacti $
stefanl@hosta:~/Work/Cacti $
업데이트 :
추가 검사를 수행하면 각 줄 앞에 리턴 문자가있는 것처럼 보입니다. 를 ^M
사용할 때 나타납니다 less
. 그래서 나는 두 가지 tr
진술을 추가했습니다 . 하나는 개행 문자를 삭제하고 다른 하나는 리턴 문자를 삭제합니다.
./script | | tr -d '\n' | tr -d '\r'
tr '\n' ' '
와tr -d '\n'
이상한 방법으로 라인을 바꿈됩니다. 결과를 보여주기 위해 질문을 업데이트했습니다. 따라서을 사용해야 할 수도tr
있지만 올바르게 사용하는 방법을 알아야합니다.