
Часть моего кода выглядит следующим образом:
output=$(cat databaselog | awk '{print $9,$1,$2,$6}' )
echo $output >> savedfile
Вывод будет примерно таким, сохраненным в новом файле с именем savedfile
name1 date1 id1 ip1 name2 date2 id2 ip2 name3 date3 id3 ip3
Но я хочу, чтобы было так:
name1 date1 id1 ip1
name2 date2 id2 ip2
name3 date3 id3 ip3
Я знаю, что это довольно просто, но я не могу найти правильный способ сделать это. Пожалуйста, помогите, спасибо!
решение1
Вам нужно использовать двойные кавычки $output
, когда "$output"
вы его выводите. В противном случае вывод будет содержать переводы строк и другие пробелы, преобразованные в просто пробелы.
Также хорошей практикой является заключение подстановки команды в двойные кавычки, output="$(...)"
а не простоoutput=$(...)
например
output="$( cat databaselog | awk '{print $9,$1,$2,$6}' )"
echo >> savedfile
echo "$output" >> savedfile
Но вам было бы лучше просто:
echo >> savedfile
awk '{print $9,$1,$2,$6}' databaselog >> savedfile