seq 产生数字序列
seq 1 10
-w: 等宽,不足前补0
seq -w 1 100
wc
wc = word count
[xiehaibing@localhost ~]$ wc /etc/services
11176 61033 670293 /etc/services # 行数,单词数,字符数
[xiehaibing@localhost ~]$ wc /etc/*conf
3 9 55 /etc/asound.conf
10 72 449 /etc/sysctl.conf
2 2 37 /etc/vconsole.conf
26 126 970 /etc/yum.conf
818 3789 26796 total # 汇总
具体使用方法:
- -l : line
- -w : word
- -c : character
[xiehaibing@localhost ~]$ wc -l services
11176 services
[xiehaibing@localhost ~]$ wc -c services
670293 services
[xiehaibing@localhost ~]$ wc -w services
61033 services
举例:
求出/etc/*conf总的行数
wc -l /etc/*conf
sort (order by )
-n: 按照数字排序,默认按照字母大小排序。
-k: 指定字段排序
-k2nr -k2nr ….
-u: 去重, uniq 也是去重.
-t: 指定分隔符。
[root@slave02 ~]# head 000004.csv | sort -t, -k4nr
2020-11-20,'000004,国农科技,31.46,33.33,30.55,32.42,32.62,-1.16,-3.5561,17.91,15031255,480862380.2,5192555582.5,2640333478.64
2020-11-23,'000004,国农科技,31.21,32.35,29.99,32.35,31.46,-0.25,-0.7947,11.784,9889942,304616869.62,5151292426.25,2619351807.64
2020-11-24,'000004,国农科技,30.17,31.19,29.62,30.77,31.21,-1.04,-3.3323,9.0188,7569179,229034682.37,4979637696.25,2532068056.28
2020-11-25,'000004,国农科技,29.77,30.1,29.0,29.0,30.17,-0.4,-1.3258,5.9398,4985114,147633364.26,4913616646.25,2498497382.68
2020-11-26,'000004,国农科技,28.7,29.7,28.5,29.7,29.77,-1.07,-3.5942,6.3908,5363600,155895224.96,4737010337.5,2408695830.8
2020-11-27,'000004,国农科技,28.35,28.91,28.18,28.7,28.7,-0.35,-1.2195,5.5476,4655900,132436736.72,4679241918.75,2379321491.4
2020-12-01,'000004,国华网安,27.7,28.4,27.3,28.1,27.62,0.08,0.2896,5.0914,4273040,118846852.26,4571957712.5,2324769146.8
2020-11-30,'000004,国农科技,27.62,28.35,27.6,28.2,28.35,-0.73,-2.575,4.8055,4033100,112340787.86,4558753502.5,2318055012.08
2020-12-02,'000004,国华网安,26.38,27.7,26.19,27.4,27.7,-1.32,-4.7653,7.2449,6080383,161804987.84,4354088247.5,2213985923.92
[root@slave02 ~]#
-o : 把结果写入文件cat *conf |sort -u -o uniq.txt
对文本进行排序,默认是使用字符串排序。
比如
[xiehaibing@localhost ~]$ cat number
12434
34
-988
444
353
4445
9
2
[xiehaibing@localhost ~]$ sort number
12434
12434
2
555
9
-988
[xiehaibing@localhost ~]$ sort -n number
-988
2
9
34
333
353
434
444
444
445
455
555
555
4445
12434
12434
对指定列进行排序,使用-k,如果是数字排序 ,-n,如果是从大到小,-r
[xiehaibing@localhost ~]$ sort -nr -k2 n.txt
24 40
17 39
110 38
28 37
20 36
21 35
11 34
14 33
26 32
13 31
27 30
16 29
23 28
19 27
12 26
18 25
29 24
30 23
15 22
25 21
#tr 文本替换和删除
- -s
把w命令的结果的连在一起的空格压缩为一个空格
w | tr -s ' '
-d: 删除
w | tr -d ' '
替换tr [a-z] [A-Z] *conf
把所有文件的内容的小写字母改成大写字母
uniq 去重 (distinct)
用法:
-c: 计数重复行或者字段
在使用uniq之前,必须调用sort命令排序。
uniq只支持从管道读取,不支持文件的读取。
shuf 打乱顺序
paste
假如a,b1文件都是20行,下面的命令可以合并4列。
[xiehaibing@localhost ~]$ paste a b1 b1 a | rev |tac
71 93 93 71
91 72 72 91
12 53 53 12
31 13 13 31
21 62 62 21
92 42 42 92
81 52 52 81
62 23 23 62
72 03 03 72
01 83 83 01
52 12 12 52
51 22 22 51
11 43 43 11
03 32 32 03
22 02 02 22
42 04 04 42
61 92 92 61
41 33 33 41
32 82 82 32
82 73 73 82
02 63 63 02
cut
截取字符串
-d: 指定分隔符
-b:取从第几个字母到第几个字母
echo "hello" | cut -b2-4
ell
-f: 取的第几个字段
echo "name,gender,score" | cut -d',' -f2,1
name,gender
[yanfeng@slave02 ~]$ ls -1 *conf
asound.conf
chony.conf
[yanfeng@slave02 ~]$ ls -1 *conf | cut -d. -f1
asound
chrony
rev
镜像
echo abc|rev => cba
tac (cat)
反向输出
#paste
xargs 交换参数
一般使用方法,接受管道,然后把管道的每一行作为参数,给他后面的linux命令去执行
-i: 表示可以使用{}代替前面的每一行数据.
把当前所有*conf文件备份ls -1 *conf | xargs -i cp {} {}.bak
-I:指定占位符ls -1 *conf | xargs -I[] cp [] [].bal
作者:严锋 创建时间:2023-12-06 09:29
最后编辑:严锋 更新时间:2025-05-09 15:48
最后编辑:严锋 更新时间:2025-05-09 15:48