Linux(17)命令行文本处理工具

2018-01-09  本文已影响0人  极客列侬

文本处理

文件浏览

cat    查看文件内容

more    以翻页形式查看文件内容(只能向下翻页)

less    以翻页形式查看文件内容(可上下翻页) 

head    查看文件的开始10行(或指定行数)

tail    查看文件的结束10行(或指定行数)

    基于关键字搜索

命令grep 用以基于关键字搜索文本

grep "xxx" 目标文件

find /-user xxx | grep video 查找所有user 为xxx

如:find / -user root 2> /dev/null | grep xxx

查找所属用户时root 的并且把错误信息输出到垃圾回收里 关键字时xxx的信息

文件中包含video的文件信息

-i 在搜索时候忽略大小写

-n 显示结果所在行数

-v 输出不带关键字的行 (取反)

-Ax 在输出的时候包含结果所在行之后的指定行数

-Bx 在输出的时候包含结果所在行之前的指定行数

基于列处理文本

命令cut用以基于列处理文本内容

cut -d: -fl /etc/passwd

grep xxx /etc/passwd | cut -d: -f3

-d 指定分割字符(默认是TAB)

-f 指定输出的列号

-c 基于字符进行切割

  cut -c2-6 /etc/passwd

    文本统计

命令wc(word count)用以统计文本信息

-l 只统计行数

-w 只统计单词

-c 只统计字节数

-m 只统计字符数

  文本排序

  命令sort用以对文本内容进行排序

-r 进行倒序排序

-n 基于数字进行排序

-f 忽略大小写

-u 删除重复行

-t c 使用c作为分隔符分割为列进行排序

-k x  当进行基于指定字符分割为列的排序时,指定基于哪个列排序

  删除重复行

命令sort -u 可以删除重复行  (不过会进行排序)

命令uniq用以删除重复的相邻行

  文本比较

命令diff用以比较两个文件的区别

diff 文件1 文件2

-i 忽略大小写

-b 忽略空格数量的改变

-u 统一显示比较信息(一般用以生成patch布丁文件)

diff -u 文件1 文件2 >final.patch

  拼写检查

命令aspell 用以显示检查英文拼写

aspell check xxx

aspell list < xxx

  tr命令(translate)用以处理文本内容

删除关键字

tr -d 'TMD' < xxx

转换大小写

tr 'a-z' 'A-Z' <目标文件

搜索替换

命令sed 用以搜索并替换文本

sed 's/linux/unix/g' 文件 

解释:搜索文件里所有linux替换成unix ,g的意思是如果有一行多个匹配一起替换

sed '1,50s/linux/unix/g' 文件

解释:只替换 1-50行

sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' xx

解释:-e 同时替换多个

sed -f sededit xxx

解释:将常用指令存到 sededit里方便重复使用

上一篇下一篇

猜你喜欢

热点阅读