Linux命令学习-文本分析

命令列表

  • cut
  • short
  • wc
  • sed(行编辑器)
  • awk

 

cut-显示切割的行数据
[option]
-f:选择显示的列
-s:不显示没有分隔符的行
-d:自定义分隔符

eg01: 以空格分割显示前三列

[root@node01 ~]# cut -d' ' -f1,2,3 grep.txt
abcedfghio
abc def ghi
qwe rty
zxc
[root@node01 ~]# cut -d' ' -f1-3 grep.txt
abcdefghio
abc def ghi
qwe rty
zxc

不显示没有分隔符的行

[root@node01 ~]# cut -d' ' -s -f1-3 grep.txt
abc def ghi
qwe rty

 

sort-排序文件的行

-n:按数值排序
-r:倒序
-t:自定义分隔符
-k:选择排序列
-u:合并相同行
-f:忽略大小写

eg01: 默认是按字典顺序排序(第一个字符相同则比较第二个,仍相同则比较第三个。。。。。。)

[root@node01 ~]# sort sort.txt 
apple 1
banana 12
orange 8
pear 5

eg02: 逆序排序

[root@node01 ~]# sort -r sort.txt 
pear 5
orange 8
banana 12
apple 1

eg03: 以第二列数值顺序排序

[root@node01 ~]# sort -t' ' -n -k2 sort.txt 
apple 1
pear 5
orange 8
banana 12

 

wc-word count,字符统计

-c:统计所占字节数(包括空格,换行)
-m:统计字符个数
-w: 统计单词的个数
-l:统计行数

eg01:

[root@node01 ~]# cat sort.txt | wc
      4       8      34
[root@node01 ~]# cat sort.txt | wc -c
34
[root@node01 ~]# cat sort.txt | wc -l
4
[root@node01 ~]# cat sort.txt | wc -m
34
[root@node01 ~]# cat sort.txt | wc -w
8
[root@node01 ~]# 

 

sed-行编辑器

语法:

sed [options] 'AddressCommand' file ...
[option]
-n 静默模式,不再默认显示模式空间中的内容
-i 直接修改原文件
-e 同时执行多个脚本
-f 使用脚本文件
-r 表示使用扩展正则表达式

[Address]
可以没有
给定范围
查找指定行/str/

[Command]
d 删除符合条件的行;
p 显示符合条件的行;
a\string 在指定的行后面追加新行,内容为string
a\n 可以用于换行
i\string 在指定的行前面添加新行,内容为string
r FILE 将指定的文件的内容添加至符合条件的行处
w FILE 将地址指定的范围内的行另存至指定的文件中; 
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
g 行内全局替换
i 忽略字符大小写
s///: s###, s@@@	
	\(\), \1, \2

 

eg01: 静默输出文件中第二行的信息

[root@node01 ~]# sed -n "2p" sort.txt 
pear 5

eg02: 输出文件除了第2行之外的信息

[root@node01 ~]# sed "2d" sort.txt 
banana 12
apple 1
orange 8

eg03: 修改原文件,删除文件中第二行的信息

[root@node01 ~]# sed -i "2d" sort.txt 

eg04: ,修改原文件,在第二行后追加新行,内容为abc

[root@node01 ~]# sed -i "2a\abc" sort.txt 

eg05: 修改原文件,在第二行前追加新行,内容为abc

[root@node01 ~]# sed -i "2i\abc" sort.txt 

eg06: 修改原文件,将apple替换成happy

[root@node01 ~]# sed -i "s/apple/happy/" sort.txt

eg07: 修改原文件,删除匹配到happy的那行

[root@node01 ~]# sed -i "/happy/d" sort.txt

eg08: 替换inittab文件“id:3:initdefault:”这一行的3替换成5

[root@node01 ~]# sed "s/\(id:\)[0-6]\(:initdefault:\)/\15\2/" inittab

eg09: 替换inittab文件“id:3:initdefault:”这一行的3替换成变量num的值

[root@node01 ~]# sed "s/\(id:\)[0-6]\(:initdefault:\)/\1$num\2/" inittab

未完待续。。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值