내 컴퓨터에서 이 명령은 mysql -e "show databases"
다음과 같은 출력을 생성합니다.
$ mysql -e "show databases
+--------------------+
| Database |
+--------------------+
| information_schema |
| database1 |
| database2 |
| mysql |
| performance_schema |
| sys |
+--------------------+
그러나 이를 임의의 명령에 전달하거나 파일로 리디렉션하면 서식이 사라집니다.
$ mysql -e "show databases" | cat
Database
information_schema
database1
database2
mysql
performance_schema
sys
나는 형식이 stderr을 통해 이루어질 것이라고 생각했지만 그렇지 않은 것 같습니다.
$ mysql -e "show databases" 2>/dev/null
+--------------------+
| Database |
+--------------------+
| information_schema |
| database1 |
| database2 |
| mysql |
| performance_schema |
| sys |
+--------------------+
서식 지정 문자가 파이프를 통과하지 못하는 이유는 무엇입니까? 이 동작을 변경할 수 있나요?
답변1
MySQL은 파이프가 표준 출력에서 다른 애플리케이션으로 변경될 때 출력 [형식]을 변경합니다.
이 형식을 유지하려면 --table
옵션을 사용하거나 --tabbed
또는 를 사용하십시오 --vertical
.