标签:过滤 显示行号 写入 pat 运行 txt ascii 文本处理工具 数据
1、grep工具
grep是行运滤工具;用于根据关键字进行过滤
# grep [] ‘关键字‘ 文件名
-i::不区分大小写
-v:查找不包含指定内容的行,反向选择
-w:按单词搜索
-o:打印匹配关键字
-c:统计匹配的次数
-n:显示行号
-r:逐层遍历目录查找
-A:显示匹配行及及后面多少行
-B:显示匹配及前面多少行|
-C:显示匹配行前后多少行
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e:使用正则匹配
-E:使用扩展正则匹配
^key:以关键开头
^$:匹配空行
--color=auto:可以将找到的关键词部分加上颜色的显示
用颜色显示:全局生效
vim /etc/bashrc
在最后小o一下
alias grep=‘grep --color=auto‘
:wq
重新加一下配置文件
#source /etc/bashrc
# grep --color=auto ‘root‘ passwd
需要写到配置文件:
cp /etc/passwd /root
例# grep ‘root‘ passwd
# grep -n ‘root‘ passwd
# vim passwd
# 把‘root‘ 修改‘ROOT‘
# grep -ni ‘root‘ passwd # -n显示行号,-i是忽略大小写
# grep ‘^root‘ passwd #查找root开头的行
# grep ‘bash$‘ passwd #查找cbash结尾的行
# grep -niv ‘root‘ passwd #-v是取返的意思,不以root显示的行
# grep -nB 3 ‘^ftp‘ passwd #查找包含ftp的行及前其3行,B就是before
# grep -nA 3 ‘^ftp‘ passwd #查找包启ftp的行及其后3行,A就是after
# grep -nC 3 ‘ftp‘ passwd #查找包启ftp的行及其三3行和后3行
# grep -w ‘hello‘ passwd #打印包启hello单词的行
# grep -o ‘hello‘ passwd #打印关键字hello本身
man grep
2、cut工具
cut是列截取工具,用于列的截取
语法与选项:
# cut 选项 文件名
常见选项:
-c:以字符为单位进行分割,截取
-d: 自定义分割符,默认为制表符为\t
-f: 与-d一起使用,指定截取哪个区域
例:# cat -d: -f1 1.txt 以:冒号分割,截取第1列内容
# cut -d: -f1,6,7, 1.txt 以:冒号分割,截取1,6,7列内容
# cut -c4 1.txt 截取文件中每行第4个字符
# cut -c4-10 1.txt 截取文件中每行的1-4个字符
# cut -c5- 1.txt 从第5个字符开始截取后面所有字符
# cut -d: -f1 passwd 截取每行的第一列
# cut -d: -f1,7 passwd | head 截取每一行第1,7列,并且只显示头10行
# cut -c10- passwd
#cut -c5-10 passwd 截取所有行第5到10列,即5,6,7,8,9,10列
head passwd 查看文件passwd头10行
tail passwd 查看文件passwd最后10行
查看系统运行及别:
# runlevel | cut -c3
# runlevel | cut -d ‘ ‘ -f2
# grep -v ‘^#‘ /etc/inittab | cat -d: -f2
3、sort工具
sort工具用于排序;它将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们安升序输出。
语法和选项:
-u: 去除重复行(不管你重不重复,都会去除重复的行)
-r :降序排列,默认是升序
-o:将排序结果输出到文件中,类似重定向符号>
-n:以数据排序,默认是按字符排序
-t:分隔符
-k:第N列
-b:忽略前导空格
-R:随机排序,每次运行的结果均不同
例:
# sort -n -t: -k3 1.txt
# head passwd > 1.txt 将passwd的前10行重定向到1.txt
# sort -n -t: -k3 1.txt
# sort -nr -t: -k3 1.txt
# sort -nr -t: -k3 1.txt -o 2.txt
# sort -u 3.txt #去除重复的行
4、uniq工具
uniq用于去除 连续的重复行
常用选项:
-i:忽略大小写
-c:统计重复行次数
-d:只显示重复行
例:
# uniq 2.txt
# uniq -d 2.txt
# uniq -dc 2.txt
5、tee工具
tee工具是从标准输入读取并写入到标准输出和文件,即:在屏幕上输出一份,同时写到入文件一份,此工具默认是覆盖之前内容
例:
echo hello world | tee 11.txt #在11.txt中会有hello world
echo 999 | tee 11.txt #在11.txt中会覆盖掉hellow world并写入999
echo 666 | tee -a 11.txt #此时加了-a时,就是追加在原内容后面,999,666
#过滤配置文件vsftpd.conf,除去#号开头的,去掉包含空格内容,tee在屏幕上输出并写入vsftpd.conf.bak文件
grep -v ‘^#‘ vsftpd.conf | grep -v ‘^$‘ | tee vsftpd.conf.bak
6、diff工具
diff工具用于逐行比较文件的不同
注意:diff描述两个文件不同的方式是告诉我们怎样改变第一个文件之后与第二个文件匹配。
语法:
# diff file1 file2 将文件file1改变后与file2比较,file2为基点,file1是需要改变的
# diff -c file1 file2 #以上下文格格式显示,***表示第一个文件,---表标第二个文件
# diff -u file1 file2 #合并格式,---表示第一个文件,+++表示第二个文件 (此方法常用,易懂)
-表示删除,+表示要增加的内容,没有符号表示不要改变,改file1,使其与file2相同
diff工具用于比较两个目录的不同:
# diff -q dir1 dir2
打文件打补丁
#diff -uN file1 file2 > file.patch #找出不同内容重定向到file.atch文件
# patch file file.patch #将不同的内容,打到file1的文件当中
7、paste工具
paste工具用于合并文件行
常用选项:
-d:自定义间隔符,默认是tab
-s:串行处理,非并行
例:
# paste file2 file2 #默认就是空格分隔tab
# paste -d: file1 file2 #自定义以:号为分隔符
# paste -s file1 file2 #两个文件是换行处理
8、tr工具
tr用于字符串转换,替换和删除;主要用于删除文件中控制符或进行字符转换
语法和选项:
语法:
1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理
# commands | tr ‘string1‘ ‘string2‘
2:tr处理的内容来自文件,记住要使用"<"标准输入
# tr options ‘string1‘ < filename
选项
-d:删除字符串1中所有输入字符
-s:删除所有重复出现 字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串
常见匹配字符串:
a-z或[:lower:] 匹配所有小写字母 [a-zA-Z0-9]
A-Z或[:upper:] 匹配所有大写字母
0-9或[:digit:] 匹配所有数字
例:
# tr ‘a-z‘ ‘A-Z‘ < 1.txt #将所有小写替换为大写
# tr ‘0-9‘ ‘@‘ < 1.txt #将1.txt文件当中数据替换为@号
# tr ‘:/‘ ‘#‘ < 1.txt #将1.txt文件当中的:号和/替换为#,是单个单个替换
# tr -d ‘:/ 0-9,‘ < 1.txt # -d是删除文件当中的字符
# tr -d ‘[:/ 0-9,]‘ < 1.txt #-d也是删除文件当中的字符
# tr -s ‘a-z‘ < 1.txt #压缩所有连续的小写字母,压缩一行一行处理
标签:过滤 显示行号 写入 pat 运行 txt ascii 文本处理工具 数据
原文地址:https://www.cnblogs.com/shaues/p/13207396.html