标准设备文件,筛选器,管道(Device Files, Filters, Pipes) -- Linux入门3

Standard device files,标准设备文件

cat 命令可以用来显示文件的内容:如果你直接输入cat + enter,那么接下来的就是input的内容,那按Ctrl+d keys 结束输入后,

可以显示刚刚你输入的文件内容。

Options:

0 - indicate  the standard input

1 - indicate the standard ouput

$ cat 0< test1
//这条命令将显示test1文件里的内容,也就是说,这与 $ cat test1,是一样的,也就是默认是是 0
$ cat test1 > out_test
//将test1文件里的内容输出到out_test文件里,
$ cat test1 >> out_test
//将test1文件里的内容拼接到out_test文件里。
//此外
$ cat test1 1> out_test
$ cat test1 1>> out_test 
//这两条命令和上述一样,也就是1没有必要一定要写上

$ cat test1 2> error_mesg

//2 - 表示,如果test1这个文件不存在,那么j将在(standard error file文件里,也就是error_mesg文件里)显示报错信息

Filters,筛选器

grep filter筛选

options:

-n: 显示匹配的每行,和行号,行号number 显示在在行的最前面

-c: 显示匹配的行数

-v: 显示所有未匹配的行

正则匹配举例

[] :      grep "hello[abc]" ,//搜索所有hello开头,a或b或c结尾的也就是"helloa"或"hellob"或"helloc"



[] with Hyphen :     grep "hello[a-d]",//搜索所有hello,[a-d]中某个字符结尾的字符串

...

其中:

grep "hello.[abc]" 和grep "hello\.[abc\]"的不同: grep "hello\.[abc\]"这个直接显示 hello.abc,因为'\'字符进行了字符的转义。

options:

-n: 显示所有匹配成功的行

-c:显示匹配成功的行数

-v:显示所有特定条件下匹配的行

wc 命令

$ wc test
//将会显示四个参数,
//-l,显示test文件中的行数
//-w,显示test文件中的单词数
//-c,显示test文件中的字符数
//最后一个显示文件名, 没有的话就不显示

cut命令

Options:

-f : 表示要显示的特定列,一般和-d一起用

-c :   表示要显示的特定字符

-d:   表示要分割的特定字符

//举例

$ cut -c1 test //显示test 文件的第一个字符

$ cut -c1-5 test //显示test文件的前1-5个字符

$ cut -d ';' -f1 test//显示test文件用';'分割后的第一列

tr命令

Options:

-s: 将多个特定的字符压缩到一个字符

$ tr -s " " < test  //将test文件中多个连续的空格替换成单个空格。

$ tr "[a-z]" "[A-Z]"  < test//将test文件中所有的小写字符变成对应的大写字符。

$ tr ':' ' ' < test //将test文件中的':'替换成' '

Sort命令

Options:

-r:  将输入进行逆序排序, 

$ sort -r test//将test 文件中的内容进行逆序排序

-f:  所有字符大小写视为大写,并且按字典序排序

$ sort -f test//将test字典序排序,无视大小写,

-n: 按非字典序(ASCII)序,

$ sort 
12
23
9
121
33

//output
12 
121
23
33
9
//121在23前面因为1比2的ACSII更小

- The <filename> : 

$ sort newfile oldfile
//将newfile根据oldfile的规则来排序,默认default是升序

- The +pos1 -pos2 :

$ sort +2 -3 test
//意思就是排序前2列到第三列,不包括第三列

-t: 指定排序时所用的分隔符:


-o:将排序后的文件存到指定文件

$ sort -r test -o out_test test2
//将test写道out_test,然后在out_test后面拼接test2的内容,然后逆序排序

-b:忽略前导零,进行排序


Pipes,管道

options:

$ ls > tempfile: 将ls的内容写道tempfile

$ more  tempfile: 显示到控制台

也可以 $ ls | more tempfile: 将两条命令合成一条。


tee command:

$ cat test | tee test2 test3
//将test里的内容同时写到test2和test3
$ sort test | tee test_sort | more
//整个步骤就是先对test排序,然后管道tee到 test_sort文件,如果没有会新建这个文件,最后用more 命令在终端控制台上显示


猜你喜欢

转载自blog.csdn.net/qq_34649947/article/details/80591905