MySQL Workbench를 사용한 결과를 보면 SELECT
단일 항목으로 정확합니다.\
max@host 10:13:58: ~$ mysql -h db-master.domain.local -uuser -ppw db -e '
> SELECT
> DISTINCT i.filesourceregexp
> FROM db.ImportLogFiles i'
+------------------------------------------------+
| filesourceregexp |
+------------------------------------------------+
| ^[0-9]{8}_1062355673_merge_google_pbn\.csv$ |
| ^[0-9]{8}_8026062435_merge_google_pbn\.csv$ |
| ^[0-9]{8}_1062355673_store_visits_report\.csv$ |
+------------------------------------------------+
max@host 10:14:10: ~$ mysql -h db-master.domain.local -uuser -ppw db -e '
SELECT
DISTINCT i.filesourceregexp
FROM db.ImportLogFiles i' | tail -n +2
^[0-9]{8}_1062355673_merge_google_pbn\\.csv$
^[0-9]{8}_8026062435_merge_google_pbn\\.csv$
^[0-9]{8}_1062355673_store_visits_report\\.csv$
max@host 10:14:19: ~$
다음 옵션이 있습니다 my.cnf
.
[client]
host = db-master
user = user
password = pass
default-character-set=utf8
tail
출력/문자열을 변경 하여 결과를 파이핑하는 이유는 무엇입니까 ? (이중 참고 \
).
답변1
아니고 tail
배관입니다.
mysql
표준 출력이 터미널 장치일 때, 사용자를 위한 것이라면 ASCII 박싱 출력 형식의 표 형식을 사용하고스크립팅파이프나 일반 파일과 같이 그렇지 않은 경우에는 형식을 지정합니다.
당신도 같은 것을 볼 것입니다다른형식을 지정하다
mysql... | cat
또는
mysql > file; cat file
출력 형식에 영향을 미치는 -r
/ --raw
, -s
/ --silent
, -B
/ --batch
, -N
/ --skip-column-names
/ --column-names=0
, -H
/ --html
, -t
/ ... 도 참조하세요 .--table
출력이 터미널 장치로 이동하지 않는 경우에도 표 형식의 출력을 원하면 다음 -t
옵션을 추가하세요.
mysql -t ... | tail -n +2
그러나 요점이 헤더 줄을 제거하는 것이라면 , -N
유무에 관계없이 를 사용하세요 -t
.
헤더 없이 데이터베이스에서 가능한 한 원시 값을 얻으려면 다음을 사용합니다.
mysql --defaults-extra-file=/some/protected/file/with/credentials \
--batch --raw --skip-column-names -e 'select...' database
그건:
ps
를 사용 하여 대신 파일(예:my.cnf
) 에 자격 증명을 전달하여 출력에 비밀번호를 노출하지 마세요--defaults-extra-file
.- 사용일괄표 형식의 출력을 피하는 모드입니다(그리고 실제로 다른 의미를 가질 수 있는 일괄 처리를 수행하고 있다는 사실을 인정합니다).
--raw
피하기 위해탈출. 값에 개행 문자가 포함되어 있지 않다고 가정하면 출력을 안정적으로 사후 처리할 수 없습니다.--skip-column-names
헤더 라인을 제거합니다.