在命令行下使用js流部分替代shell命令,太难记了!
Github: https://github.com/fritx/jayin/tree/cn
假如你有一个类似于gitignore的文件:
# .gitignore
*
!.gitignore
!README.md
!prs-welcome.svg
!.bashrc
!.bash_profile
!.exports
!.aliases
!.editorconfig
你想要cp这些文件到另外一个文件夹。
用bash来搞?
files=$(cat .gitignore | sed /^\*$/d | sed s/\!//)
for file in $files; do cp $file ./dotfiles/; done
# or even
cat file | sed /^\*$/d | sed s/\!// \
| while read -r file; do cp $file ./dotfiles/; done
瓦特?
作为一名node.js工程师,为什么不能用js流来处理呢?
cat .gitignore | js -ti 'x.trim().split(`\n`).slice(1).map(x => x.slice(1))' \
| js -e 'exec(`cp ${x} ./dotfiles/`)'
# same as
cat .gitignore | js -ti 'x.trim().split(`\n`)' \
| js 'x.slice(1)' \
| js 'x.map(x => x.slice(1))' \
| js -e 'exec(`cp ${x} ./dotfiles/`)'
不要忘了搞一个alias,如果你需要的话。
npm install -g jayin
alias js="jayin"
-ti
: 以文本的形式直接input,无需JSON.parse-to
: 以文本的形式直接output,无需JSON.stringify-t
: 以上两者-e
: for eachx
: 当前的input内容i
: current index value (with -e)exec(cmd)
: child_process.execSync(cmd)
jayin基于through2.
如果你发现已经早已有类似的东西存在,不妨告诉我一下 ;)