내 코드의 일부는 다음과 같습니다.
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