Linux基础(三)-- Linux的基本命令(下)

2020-06-01  本文已影响0人  做个合格的大厂程序员

cut

新建文件:
vim 1.txt

111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii

截取

cat 1.txt | cut -c 1

练习一:截取出1.txt文件中前2行的第5个字符

head -2 1.txt | cut -c 5

练习二:截取出1.txt文件中前2行以”:”进行分割的第1,2段内容

head -2 1.txt | cut -d ':' -f 1,2

或者

head -2 1.txt | cut -d ':' -f 1-2

sort

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

[root@node01 tmp]# cat 01.txt
banana
apple
pear
orange
pear

[root@node01 tmp]# sort 01.txt 
apple
banana
orange
pear
pear

sort的-u选项

它的作用很简单,就是在输出行中去除重复行。

[root@node01 tmp]# sort -u 01.txt 
apple
banana
orange
pear

pear由于重复被-u选项无情的删除了。

sort的-r 和 -n选项

[root@node01 tmp]# cat 02.txt 
1
3
5
7
11
2
4
6
10
8
9

sort默认的排序方式是升序

[root@node01 tmp]# sort 02.txt 
1
10
11
2
3
4
5
6
7
8
9

排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面

[root@node01 tmp]# sort -n 02.txt
1
2
3
4
5
6
7
8
9
10
11

-r表示降序,n表示按数字进行排序

[root@node01 tmp]# sort -n -r 02.txt
11
10
9
8
7
6
5
4
3
2
1

合并式

[root@node01 tmp]# sort -nr 02.txt  
11
10
9
8
7
6
5
4
3
2
1

wc命令

wc命令用于计算字数。

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

wc 文件名

参数:

uniq

uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。

uniq 文件名

参数

-c 统计行数

练习1 去除5.txt中重复的行

cat 5.txt | sort | uniq

练习2 统计5.txt中每行内容出现的次

cat 5.txt | sort | uniq -c

tee

tee 和 >类似,重定向的同时还在屏幕输出
参数说明:
tee -a 内容追加 和 >> 类似

[root@hadoop01 tmp]# echo 'aaa' | tee 1.txt
aaa

[root@hadoop01 tmp]# cat 1.txt
aaa

[root@hadoop01 tmp]# echo 'bbb' | tee -a 1.txt
bbb

[root@hadoop01 tmp]# cat 1.txt
aaa
bbb

tr

Linux tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

-d, --delete:删除指令字符

练习1 把itheima的小写i换成大写I

echo "itheima" | tr 'i' 'I'

练习2 把itheima的小写i和a换成大写I和A

echo "itheima" | tr 'i' 'I' | tr 'a' 'A'

把itheima的转换为大写

echo "itheima" |tr '[a-z]' '[A-Z]'

练习5 单词计数

words.txt中的内容如下:
hello,world,hadoop
hive,sqoop,flume,hello
kitty,tom,jerry,world
hadoop
cat words.txt | tr -s ',' '\n' | sort | uniq -c | sort -r | awk '{print $2, $1}'

awk

awk是一种处理文本文件的命令,是一个强大的文本分析工具。但是比较复杂,不过功能比sed更加的强大,它支持分段。默认每行按空格或TAB分割。

-F 指定输入文件折分隔符

格式

awk '/查询内容/ 文件名称'
Xnip2020-05-31_17-41-45

高级用法:
查询姓张和姓李开头的成绩

awk '/^zhang|^li/' score.txt

打印前三段内容

awk -F ',' '{print $1, $2,$3,}' score.txt

打印所有

awk -F ',' '{print $0}' score.txt

打印带行号

awk -F ',' '{print NR, $0}' score.txt

获取最后一段内容

awk -F ',' '{print $NF}' score.txt

获取倒数第二段

awk -F ',' '{print $(NF - 1)}' score.txt

查询名字转成大写

awk -F ',' '{print toupper($1)}' score.txt 

tolower // 转成小写
length // 返回字符长度

打印最后一行大于60分的人,并且标注及格

awk -F ',' '{if($NF > 60) print $1,$4,"及格"}'  score.txt 
上一篇下一篇

猜你喜欢

热点阅读