数据科学中的命令行
示例:
$ echo 'my name is hou Ruijie' | cowsay _______________________ < my name is hou Ruijie > ----------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
$ whoami houruijie $ hostname houruijiedeMacBook-Pro.local $ date 2017年 8月16日 星期三 22时36分26秒 CST $ echo 'The command line is awesome!' | cowsay ______________________________ < The command line is awesome! > ------------------------------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
命令行做数据处理的优点:灵活、可增强、可拓展、可扩充以及无所不在。
$ seq 3 1 2 3 $ echo 'hello world' | wc 1 2 12 $ echo 'hello world' | wc -l 1 $ echo 'hello world' | wc -w 2 $ echo 'hello world' | wc -c 12
shell函数
fac() { (echo 1; seq $1) | paste -s -d\* - | bc; } #paste 连接 -s 连成一行 -d连接符 -从标准输入读取 $ fac 5 120
$ alias l='ls -al' $ l total 16 drwxr-xr-x 4 houruijie staff 136 8 16 23:21 . drwxr-xr-x 12 houruijie staff 408 8 16 21:57 .. -rw-r--r-- 1 houruijie staff 12 8 16 23:21 file1 -rw-r--r-- 1 houruijie staff 12 8 16 23:21 file2
type可以查看一个命令的类型 内置or alias or 其他
$ type -a pwd pwd is a shell builtin pwd is /bin/pwd $ type -a cd cd is a shell builtin cd is /usr/bin/cd $ type -a fac fac is a function fac () { ( echo 1; seq $1 ) | paste -s -d+ - | bc } $ type -a l l is aliased to `ls -al'
#通过管道进行组合 $ seq 5 1 2 3 4 5 $ seq 30 | grep 3 3 13 23 30 $ seq 100 | grep 3 | wc -l 19
#输入和输出重定向 $ echo -n "hello" > hello-world $ echo "world" >> hello-world $ cat hello-world helloworld # -n 指定echo不要输出尾部新行