매번 새 줄에 awk 함수를 인쇄합니다.

매번 새 줄에 awk 함수를 인쇄합니다.

내 코드의 일부는 다음과 같습니다

output=$(cat databaselog | awk '{print $9,$1,$2,$6}' )
echo $output >> savedfile

출력은 다음과 같으며, savefile이라는 새 파일에 저장됩니다.

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

관련 정보