Linux基础篇学习——linux文件处理工具(cut,sort,uniq,wc,tr)

cut 数据裁剪

命令语法
cut OPTION... [FILE]...
OPTION

-b 以字节位单位分割 这些字节位置将忽略多字节字符边界,除非也指定了-n 标志
-c 以字符为单位进行分割
-d自定义分隔符 默认为制表符
-f指定显示区域与-d配合使用
-n取消分割多字节字符 仅和 -b 标志一起使用,如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除

由选项可以看出cut剪切文件依据三种方法:字节字符区域

实例
[root@localhost ~]# cat test
hello world hello world hello world
hello world!

1.截取文件每行的第3个和第5个字符

[root@localhost ~]# cut -b 3,5 test
lo
lo

2.截取文件每行的第3个、第4个和第5个字符

[root@localhost ~]# cut -b 3-4,5 test
llo
llo

3.截取文件每行的第3个、第4个和第7个字符

[root@localhost ~]# cut -b 3-4,7 test
llw
llw

4.截取文件每行的前3个字符

[root@localhost ~]# cut -b -3 test
hel
hel

sort 字段排序

命令语法
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
OPTION

-f忽略大小写
-b忽略最前面空格字符
-M 以月份名字排序
-n 以纯数字排序 默认以文字型态排序
-r反序
-u uniq去重
-t 指定分隔符默认以tab为分隔符
-k 指定以哪个区间分隔符
-o重定向到文件

创建测试文件

touch test.txt 内容如下

6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini
8c47b68c23994cf382bd12a3bd4a1fe8 ./plugin.conf
e45f64ed552ab0176be337ad77f3b3ae ./start.sh
6172fad14869bbb949ea1d60c4771f14 ./etop.sh
8dd2db4b88727758bb0800c321bafc34 ./west_proc
1e142f0d573c5891cc14d8864e073d53 ./test_proc.c
6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini

1.默认sort排序

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

[root@localhost ~]# sort test.txt
1e142f0d573c5891cc14d8864e073d53 ./test_proc.c
6172fad14869bbb949ea1d60c4771f14 ./etop.sh
6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini
6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini
8c47b68c23994cf382bd12a3bd4a1fe8 ./plugin.conf
8dd2db4b88727758bb0800c321bafc34 ./west_proc
e45f64ed552ab0176be337ad77f3b3ae ./start.sh

2.根据符号“.”分割字符串,并以分割后的test.txt 文件中的第2列进行排序

[root@localhost ~]# sort -k 2 -t "." test.txt
6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini
6d7fce9fee471194aa8b5b6e47267f03 ./aersion.ini
6172fad14869bbb949ea1d60c4771f14 ./etop.sh
8c47b68c23994cf382bd12a3bd4a1fe8 ./plugin.conf
e45f64ed552ab0176be337ad77f3b3ae ./start.sh
1e142f0d573c5891cc14d8864e073d53 ./test_proc.c
8dd2db4b88727758bb0800c321bafc34 ./west_proc

uniq 去重

uniq用于去除排序文件中的重复行(uniq不会检查重复的行,除非它们是相邻的行)

命令语法
uniq [OPTION]... [INPUT [OUTPUT]]
OPTION

-c --count,在每行前加上表示相应行目出现次数的前缀编号
-d --repeated,只输出重复的行
-D  --all-repeated[=delimit-method],显示所有重复的行
-u --unique,只显示唯一
-i --ignore-case,不区分大小写
-f --skip-fields=N,比较时跳过前N列
-z --zero-terminated,使用’\0’作为行结束符,而不是新换行
-w --check-chars=N,对每行N个字符以后的内容不作对照
-s --skip-chars=N,比较时跳过前N字符

实例

初始文件

[root@localhost ~]# cat t.txt
Apple
apple
banana
cherry
cherry
peach core
pear core

1.默认去重,默认区分大小写

[root@localhost ~]# uniq t.txt tt;cat tt
Apple
apple
banana
cherry
peach core
pear core

2.跳过第1列(列是以空白分割出来的)

[root@localhost ~]# uniq -f1 t.txt file;cat file
Apple
peach core

3.忽略每行的第3个字符以后的内容

peach core和pear core前3个字符相同,被去重

[root@localhost ~]# uniq -c -w3 t.txt file1;cat file1
      1 Apple
      1 apple
      1 banana
      2 cherry
      2 peach core

4.跳过和忽略组合

[root@localhost ~]# uniq -c -s1 -w3 t.txt file1;cat file1
      2 Apple
      1 banana
      2 cherry
      1 peach core
      1 pear core

wc 统计字数、行数

wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出

命令语法
wc [OPTION]... [FILE]...
OPTION

-c 统计字节
-l 统计
-w 统计数 一个字被定义为由空格跳格换行字符分隔的字符串
-m 统计字符数 不能与 -c 一起使用
-L 打印最长行的长度


tr 转换或删除文件中的字符

命令语法
tr [OPTION]... SET1 [SET2]
OPTION

-s 删除所有重复出现字符序列,只保留第一个
-t 削减 SET1 指定范围,使之与 SET2 设定长度相等
-c 反选设定的字符
-d 删除指定字符

发布了43 篇原创文章 · 获赞 30 · 访问量 5952

猜你喜欢

转载自blog.csdn.net/qq_42049496/article/details/102451083