Aşağıdaki metni çıktısı bir komut dosyası var. Bu bir Netopia 2210-02 ADSL2 modemin çıkışıdır .
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
Her satır için satır sonu karakterini nasıl kaldırabilirim? Çıktı böyle bir şey görünmesini istiyorum (Evet bu çirkin):
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
Bunun gibi bazı çözümler denedim, ama çalışmıyorlar:
# (This simply outputs the contents of the script, unmodified)
stefanl@hosta:~/Work/Cacti $ ./script | sed -e 's/$//'
Ben de kullanmayı denedim tr. Her satır karakteri yerine boşluk karakteri koymak için aşağıdaki komutu bekliyordum. Bu, birden çok satırı alıp tek bir uzun satırda birleştirir. Bunun yerine, bu yalnızca son çıktı satırını görüntüler. Sonraki her satırın bir sonraki çıktı satırının üzerine yazıldığı anlaşılıyor.
stefanl@hosta:~/Work/Cacti $ ./script | tr '\n' ' '
Data Rate: 2880 1024stefanl@hosta:~/Work/Cacti $
stefanl@hosta:~/Work/Cacti $
Güncelleme :
Daha fazla incelemede, her satırın önünde bir dönüş karakteri varmış gibi görünüyor. Bu, ^Mkullanırken olduğu gibi görünür less. Bu yüzden iki trifade ekledim . Biri yeni satır karakterlerini silmek, diğeri de dönüş karakterini silmek için.
./script | | tr -d '\n' | tr -d '\r'
tr '\n' ' 'vetr -d '\n'hattı tuhaf bir şekilde sarar. Sonuçları göstermek için sorumu güncelledim. Yani, belki kullanmam gerekiyortr, ama sadece nasıl kullanacağımı doğru bir şekilde kullanmam gerekiyor.