파이프할 수 없는 형식 지정 문자

파이프할 수 없는 형식 지정 문자

내 컴퓨터에서 이 명령은 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.

관련 정보