每次都将 awk 函数打印到新行

每次都将 awk 函数打印到新行

我的部分代码如下:

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

相关内容