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