数据科学中的命令行

示例:

$ 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不要输出尾部新行
原文地址:https://www.cnblogs.com/rj81/p/7376665.html