명령줄에서 기사를 만드는 방법
소개
커맨드 라인에서 블로그에서도 Qiita에서 뭐든지 좋지만, 무언가의 문장을 게시하는 것은 의외로 간단하기 때문에 그러한 구조 만들기라는 것을 해두면 편리하다고 생각합니다.
뭔가 조사가 있을 때, 일부러 브라우저를 열고, 복사해, 에디터에, 메모해라고 하는 순서는, CLI 또는, CUI 유저로서는 매우 귀찮은 것의 하나이기도 합니다. 이번에는, 그런 때에 도움이 되는 개인적인 Tips를 몇개인가 소개하고 싶습니다.
그건 그렇고, CLI (명령 줄 사용자 인터페이스)와 CUI (문자 사용자 인터페이스)는 거의 동일한 의미로 사용됩니다. 즉, 검은 화면이라고 하는 것으로 이미지 받을 수 있으면 됩니다만, 구체적으로는, 단말(터미널, Terminal)로 한다고 하는 것이군요. 나는 CUI라고 말하는 경우가 많을까. GUI와 쌍으로 사용할 수 있기 때문에. 제목은 CLI를 사용하지만.
웹에서 문장을 꺼내자
웹에서 원하는 문장을 가져오려면
html2text
라는 파이썬 도구가 매우 유용합니다. 이것은 HTML을 텍스트 형식으로 표시하는 것입니다. 따라서 wget
$ pip install html2text
$ curl -sL http://qiita.com/syui/items/ab6a11aa57df8590d645 | html2text
문장을 추출하려면
curl
를 사용합니다. golang으로 만든 도구이지만 원하는 출력을 선택할 수 있습니다.$ go get github.com/peco/peco/cmd/peco
$ curl -sL http://qiita.com/syui/items/ab6a11aa57df8590d645 | html2text | peco
덧붙여서,
peco
라든지 peco
는 매우 사용하기 쉬운 것이므로, global alias등을 설정해 두면 좋을지도 모릅니다.~/.zshrc
alias -g P='|peco'
alias -g H='|html2text'
alias -g J='|jq'
이제 다음과 같이 사용할 수 있습니다.
# ls -A | peco
$ ls -A P
필요한 형식으로 출력합시다.
JSON으로 메모를 취하는 사람 등은
html2text
가 편리합니다. 개인적으로는, Qiita의 포스트라든지, 블로그에의 포스트도 모두, JSON에서 취한 메모를 자동적으로 소정의 형식으로 해 만들거나, 포스트 하고 있는 것입니다만, 예를 들면, 이런 느낌으로 기사 을 만들어 갑니다.$ sudo pacman -S jq
jq
이나 json
는 익숙해지면 간단합니다만, 익숙하지 않으면 처음에는, 좀처럼 사용하기 어렵다고 생각합니다. 일단, 참고가 되는 커멘드를 몇개인가 소개. 이런 식으로 값을 꺼낼 수 있습니다.hoge.json
[
{
"title": "json",
"tags": [ { "name": "json" }, { "name":"text"}, { "name":"golang"}, { "name":"html"}, { "name":"python"} ],
"body": "hello world",
"coediting": false,
"gist": false,
"private": false,
"tweet": false
}
]
# 全体の値を取り出す
$ cat hoge.json | jq .
# 変換しないで値を取り出す、括弧"を取り除く
$ cat hoge.json | jq -r .
# 括弧[]内をとりあえず取り出す
$ cat hoge.json | jq '.[]'
# 括弧{}の順番で番号指定して取り出す
$ cat hoge.json | jq '.[0]'
# 括弧{}内のtitleの値を指定して取り出す
$ cat hoge.json | jq '.[].title'
$ cat hoge.json | jq '.[]|.title'
# 括弧[]内の値だけ括弧"を除き、すべて取り出す
$ cat hoge.json | jq -r '.[]|.[]'
# tagsをすべて取り出す
$ cat hoge.json | jq '.[].tags|.[].name'
# tagsの個数を指定して取り出す
$ cat hoge.json | jq '.[].tags|.[1,2].name'
검색하여 필요한 부분을 추출
때때로 검색하여 필요한 문장을 꺼내고 싶을 때가 있습니다. 그런 때는 다음과 같은 스크립트를 만들어 두면 편리합니다.
jq
라는 느낌으로 사용합니다.search.sh
#!/bin/zsh
startpage="https://startpage.com/do/search?q="
case $1 in
*)
if [ ! $# = 0 ];then
keyword=${startpage}`echo "${@}"|tr ' ' '+'`
echo $keyword
one_step=`curl -sL ${keyword} | html2text | grep '###' | peco |cut -d"(" -f2 | cut -d")" -f1`
two_step=`curl -sL ${one_step} | html2text | peco`
case $OSTYPE in
darwin*)
echo "$two_step"| pbcopy && pbpaste
;;
linux*)
echo "$two_step"| xclip -i -sel c && xclip -o -sel c
;;
esac
else
echo '
g <hoge> : google.com/search?q=<hoge>
'
fi
;;
h|-h|-[hH]elp|--[hH]elp)
echo '
g <hoge> : google.com/search?q=<hoge>
'
;;
esac
'
Reference
이 문제에 관하여(명령줄에서 기사를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syui/items/0c355f7ce93b25c5ee32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)