Linux-文本过滤(基础)

注:本章中所有命令格式只是处理文件中的文本,也可以另作他用,如 ls -l | sed -n 2p | awk '{print $1"-----"$2}'

#grep命令

#常用的一个用法:获取当前目录下所有文本文件中含有指定字符串的行

grep '指定字符串' . -r -n

#获取包含指定字符串的行

grep 指定字符串 文本文件名 

grep "指定字符串中含有空格 要加引号" 文本文件名

#grep参数

-i 不区分大小写

-c 列举出现的行的个数

-v 获取不含指定字符串的行

 

#wc(word calculate)命令

#统计文本

wc -l 文本文件名      -->统计行数

wc -w 文本文件名    -->统计单词数

#sort命令

#排序(从第一个字符开始比较)

sort 文本文件名

#tac命令

#cat命令反过来写,用法与cat相同,但是从最后一行向上输出

#uniq命令

#去除重复行,但只会比较相邻的行,所以在使用uniq之前需要先sort

sort 文本文件名

uniq 文本文件名

#sed命令

#精准取行

sed -n 1p 文本文件               -->取第一行

sed -n 1,5p 文本文件            -->取1到5行

sed -n '$p' 文本文件              -->取最后一行

tac 文本文件 | sed -n 2          -->取倒数第二行

#替换

sed ' s/ABC/123/ ' 文本文件                 -->将文本中每行第一个出现的ABC 替换成 123

sed ' s/ABC/123/g ' 文本文件              -->将文本中每行全部出现的ABC 替换成 123 (g为group)

sed " s/ABC/${res}/g "                        -->将文本中每行全部出现的ABC 替换成 变量res的值(注意" "号)

#插入字符串

sed ' 2 i xxx ' 文本文件            -->将 xxx 插入文本文件的第二行上面 (参数i=insert)

sed ' 2 a xxx ' 文本文件           -->将 xxx 插入文本文件的第二行下面  (参数a=append)

#插入文本文件

sed ' /ABC/r 文本文件1 ' 文本文件2     -->将文本文件1的内容插入文本文件2中 所有含ABC行 的下面

sed ' 2 r 文本文件1 ' '文本文件2'          -->将文本文件1的内容插入文本文件2中的第二行下面

#cut命令

#截取字符

cut -c5-8                -->截取5到8列的字符

cut -c5-8,10-12      -->截取5到8、10到12列的字符

 

#awk命令

#截取列元素

ls -l | awk '{print $1 ,$2 ,$3 }'                         -->获取当前目录列表每行的第1、2、3列元素,并以空格隔开

ls -l | awk '{print $1  $2  $3 }'                         -->以空字符''隔开

ls -l | awk '{print $1"+++++"$2"*****"$3 }'    -->以特定字符+++++、******隔开

#获取最后一列或倒数第几列

awk '{ print $NF }'                                            -->获取最后一列

 awk '{ print $(NF-1) }'                                    -->获取倒数第二列

#awk格式化输出

ll | sed -n 1,5p | awk '{ printf "\n %-25s %-10s\n " , $(NF),$(NF-1) }'

#awk 进行四则运算

echo 1 2 3 | awk '{print $1 + $2 * $3 - $2**2}'    --> 3

 

#scp命令 : 传输文件

#需要密码

scp  /文件名/  用户名@222.195.136.33:/上传到的路径/

scp  用户名@222.195.136.33:/下载文件的路径/文件名  /下载到的本地路径/

 

#crontab : 定时任务

crontab -e 打开crontab日志

编辑:

1-59/1 * * * * 执行的命令           --> 1分钟执行一次

# vi编辑器

1. 给多行添加注释:

:% s/^/#/g 来在全部内容的行首添加 # 号注释
:2,50 s/^/#/g 在2~50 行首添加 # 号注释

posted @ 2018-12-18 17:05  Matrixssy  阅读(966)  评论(0编辑  收藏  举报