BigQuery 결과(TSV)를 쉘 예술로 Markdown으로 만들기

먼저 결론


xclip 있다면
$ xclip -o |
  sed -e 's/\t/|/g' -e 2i$(xclip -o | head -n 1 | sed -e 's/\t/|/g' -e 's/\w*/--/g') |
  xclip -selection c

그렇지 않으면 bqresult.txt라는 파일에 결과를 붙여 넣습니다.
$ cat bqresult.txt |
  sed -e 's/\t/|/g' -e 2i$(cat bqresult.txt | head -n 1 | sed -e 's/\t/|/g' -e 's/\w*/--/g')

운영 환경


$ bash --version | head -n 1
GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)

또한, 여기서 Markdown은 GitHub Flavored Markdown (GFM)의 테이블 확장 기법 에 준합니다.

설명



먼저 BigQuery 화면에서 원하는 쿼리를 실행합니다.

이번에는 샘플로서 정말 아무 의미도 없는 쿼리를 실행합니다.
SELECT 1 AS id, "hoge" AS name
UNION ALL SELECT 2 AS id, "fuga" AS name
UNION ALL SELECT 3 AS id, "piyo" AS name



실행 결과를 "결과 저장"→ "클립보드에 복사"합니다.



우선 bqresult.txt 라는 파일에 붙여넣습니다.

bqresult.txt
id  name
1   hoge
2   fuga
3   piyo

이 클립보드에 복사된 쿼리 결과는 TSV(탭 문자 구분)입니다. 탭 문자를 가상 막대( | )로 구분합니다. 원하는대로 공간을 넣으십시오.
$ cat bqresult.txt | sed -e 's/\t/|/g'
id|name
1|hoge
2|fuga
3|piyo

구분선도 만들어야 합니다.
$ cat bqresult.txt | head -n 1 | sed -e 's/\t/|/g' -e 's/\w*/--/g'
--|--

이것들을 조합하면 완성입니다.
$ cat bqresult.txt |
>   sed -e 's/\t/|/g' -e 2i$(cat bqresult.txt | head -n 1 | sed -e 's/\t/|/g' -e 's/\w*/--/g')
id|name
--|--
1|hoge
2|fuga
3|piyo


id
이름


1
hoge

2
fuga

3
piyo

좋은 웹페이지 즐겨찾기