每次將 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

相關內容