Linux文本操作命令

2019-05-15 13:58:45 浏览数 (1)

5.1 wc

wc命令计算文件的行数,字数和字节数 用法

代码语言:javascript复制
wc [-clw] 文件

-c 只显示bytes数 -l 只显示行数 -w 只显示字数

代码语言:javascript复制
$ wc testfile           # testfile文件的统计信息  
3 92 598 testfile       # testfile文件的行数为3、单词数92、字节数598

5.2 diff

diff命令用了比较两个文件的差异

代码语言:javascript复制
diff me.txt me_copy.txt -y
This is the first post.                                       | This is the first first post.
This is the second line.                                      | This is the second second line.
This is the third line.                                       | This is the third third line..

diff的参数很多,具体参考Linux diff命令,常用-y 结果解释

"|"表示前后2个文件内容有不同 "<"表示后面文件比前面文件少了1行内容 ">"表示后面文件比前面文件多了1行内容

5.3 paste命令

paste命令用于合并文件的列,把文件内容列列合并。简单就是列追加,类似R中的cbind命令

代码语言:javascript复制
paste [-s] [-d<间隔字符>][文件1][文件2][文件...]
代码语言:javascript复制
$ cat p1
1
2
3
代码语言:javascript复制
$ cat p2
a
b
c
d
代码语言:javascript复制
$ cat p3
I
II
III
代码语言:javascript复制
$ paste  p1 p2 p3
1       a       I
2       b       II
3       c       III
        d
代码语言:javascript复制
$ paste -d '%^&' p1 p2 p3
1%a^I
2%b^II
3%c^III
%d^

看下-s参数

代码语言:javascript复制
$ paste -s p1 p2 p3
1       2       3
a       b       c       d
I       II      III

相当于excel里的“转置粘贴”

5.4 sort命令

sort是用来对数据进行排序的命令,用法为

代码语言:javascript复制
sort [-bcfMnrtk][源文件][-o 输出文件]

注意,sort可以对文本文件以行为单位进行排序。

sort的参数比较多,但常用的为一下几个 -n -k -t -r

举例如下

5.4.1-n的用法

代码语言:javascript复制
$ sort t1

1
13
14
2
4
5
6
代码语言:javascript复制
$ sort -n t1

1
2
4
5
6
13
14

-n的作用很清楚了,可以使得number不是以字符排序,而是以数字排序。

代码语言:javascript复制
$ sort -nr t1
14
13
6
5
4
2
1

-r(reverse)反向排序

5.4.2-kt的用法

对按字段分隔的数据非常有用 -t指定字段分隔符(sep) -k指定排序的字段(key)

代码语言:javascript复制
$ cat t2
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
代码语言:javascript复制
$ sort -t ':' -k 2 t2
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

上例中,以':'进行分隔,按第2个字段进行排序。

0 人点赞