Linux bash - konec radku
Dobrý večer. Prosím o radu nějakého zkušeného linuxáka. Mám vytvořen skript, který testuje dostupnost vybraných serverů, kde mimo jiné extrahuji z výpisu pingu dobu odezvy time
64 bytes from ns2.n4all.net (92.240.244.39): icmp_seq=1 ttl=128 time=31.0 ms
.
Problém je v tom, (v podstatě to není ani problém, ale štve mě to, že nemůžu na to přijít), proč a hlavně co mi to vypisuje na konci každého řádku za znak ^G.
Kód, který testuje dobu odezvy a ukladá čas do proměnné time
time="$(ping -a -c 1 $server | awk -F "time=" '{print$2}'| tr -d "\n" | tr -d " "| tr -d "\t")"
a formátovaný výpis do souboru $server=nazev_serveru, $check="dostupné|nedostupné"
printf "%-18s %-20s %-10s %-10s\n" "$(date -u +"%d.%m.%Y %T")" "$server" "$check" "$time" >> $fileName;
No a konečně inkriminovaný formátovaný výstup. Jde mi o ten poslední znak ^G.
04.12.2012 19:25:24 www.google.com dostupne 34.0ms^G
Moc děkuji za odpověď.
co takto?
AWK je v tomto případě kanon na vrabce.
edit: chyba je téměř jistě ve formulaci skriptu awk, ale nechce se mi nad tím přemýšlet.
edit2: přidány "ms"
Super, funguje. Moc děkuji.
Beru zpět, znak je tam stále :(
Takže problém byl v cut 8-9.
Díky
Správně je:
v tom případě je to zbytek za "ms" a stačí tam ty ms vypsat textově.
parameter -a v tom pingu je audible ping... to znamena ze sa generuje znak BEL (0x07, ^G)..
..ak to tvoj terminal emulator podporuje, tak by ti pipol(nezobrazi sa ^G)... ak ten vystup tahas pipou
inde, tak ten znak ^G tam budes mat...
=> odstran -a
LOL.. :D
to jsem si vůbec nevšiml..