
Ein Teil meines Codes ist wie folgt:
output=$(cat databaselog | awk '{print $9,$1,$2,$6}' )
echo $output >> savedfile
Die Ausgabe sieht ungefähr so aus und wird in einer neuen Datei mit dem Namen savedfile gespeichert.
name1 date1 id1 ip1 name2 date2 id2 ip2 name3 date3 id3 ip3
Aber ich möchte, dass es so ist:
name1 date1 id1 ip1
name2 date2 id2 ip2
name3 date3 id3 ip3
ich weiß, es ist ganz einfach, aber ich finde nicht den richtigen Weg, es zu machen. Bitte helfen Sie mir, danke!
Antwort1
Sie müssen „ $output
as“ doppelt in Anführungszeichen setzen "$output"
, wenn Sie es wiedergeben. Andernfalls werden in der Ausgabe Zeilenumbrüche und andere Leerzeichen in reine Leerzeichen umgewandelt.
Es empfiehlt sich auch, die Befehlsersetzung in doppelte Anführungszeichen zu setzen. output="$(...)"
statt nuroutput=$(...)
z.B
output="$( cat databaselog | awk '{print $9,$1,$2,$6}' )"
echo >> savedfile
echo "$output" >> savedfile
Besser wäre jedoch Folgendes:
echo >> savedfile
awk '{print $9,$1,$2,$6}' databaselog >> savedfile