(菜鸡学习日记 各种使用命令只列举了常用几种,发现错误望指正)
一、管道
在Linux 中,管道就是一个固定大小的缓冲区,大小为一页4K。它是一种通信的机制,可以使用管道符“ | ” 来连接进程,连接的进程可以自动运行。它的实现方式其实就是将前一个输出当做后一个进程的输入。
二、grep
grep 是Linux 中基于行的文本搜索工具,输出为匹配到的所有符合条件的行。使用方式以及常用参数如下:
grep [-icnv] '匹配的字符' filename(-i:忽略大小写 -c:统计包含条件的行数 -n:输出行号 -v:反向搜索)
三、sort
sort 命令就是对无序数据进行排序,命令以及其常用参数如下:
sort [-ntkr] filename (-n:使用数字排序 -t:指定分隔符 -k:指定第几列 -r:反向排序)
举例说明:cat log.txt | sort -t ":" -k -2 -n(打开文件 log.txt (该文件中存在冒号隔开),对冒号隔开后的第二列按照数字排序,说明 如果没有指定-n 即使是数字也会按照String进行排序)
四、uniq
如果一个文件中出现多行完全相同的内容,在某些应用场景下需要消除重复的行,只留一行方便处理,或者说要统计出重复行的出现次数,这时候就可以使用uniq命令了(注:uniq 一般都是和sort 命令配合进行使用,先使用sort 对文件进行排序,这样重复的行就回彼此相邻,再使用uniq 命令进行操作,因为uniq 命令只会对相邻的行进行过滤,如果有重复则删除若干行重复的内容。)
使用方式: cat test.txt | sort | uniq
( 如果使用 uniq -c 则输出包括空行在内的重复行的重复次数 )
五、cut
cut 截取命令,同样这个命令也是以行为单位进行操作,可以通过指定格式取出用户所需要的部分,文件中又特定分隔符时可以使用分隔符进行截取,用法如下:
cut -f 指定的列 -d ' 分隔符 '
cat /etc/passwd | cut -f1,5 -d ' : ' (以冒号分隔,打印出passwd 文件的第1列和第5列 )
上面例子中,文件passwd 是存在固定分隔符的文件,如果是没有特定分隔符的情况,cut 还可以通过指定字符数来截取:
cat /etc/passwd | cut -c1-5,7-10 (打印passwd 文件每行1-5个字符,以及7-10个字符的内容)
六、tr
tr 命令十分简单,主要作用在于文本的转换和删除操作,下面就举两个小栗子演示一下
1)文本转换
cat test.txt | tr '[a-z]' '[A-Z]' (将test.txt 文件中的所有小写字母转换成大写字母)
2)删除
cat test.txt | tr -d ' : ' (将文件中所有的冒号删除)
七、paste 与 split
这两个命令作用相反,paste 用作文本合并,split 用作分割文件
1)paste 还是以行为单位进行合并,用法也很简单:
paste a.txt b.txt
2)split 进行分割,需要分割的文本一般比较大,不然也就没有分割的必要了(注:文件的分割在Linux 中有两种,按行分割和按照大小分割,需要注意的是二进制文件无法按照行去分割,因为二进制没有“行”的概念),这个命令只介绍一下,笔者还没有用过,就列出他的文档供阅读。
-a, --suffix-length=N use suffixes of length N (default 2) 指定拆分文件的后缀长度-b, --bytes=SIZE put SIZE bytes per output file 按字节拆分,默认单位字节-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file 指定单行的最大大小,默认单位字节-d, --numeric-suffixes use numeric suffixes instead of alphabetic 用数字作为拆分文件的后缀-l, --lines=NUMBER put NUMBER lines per output file 按行数进行拆分 --verbose print a diagnostic just before each output file is opened --help display this help and exit --version output version information and exit