Linux命令行文本处理工具
文件浏览
cat 查看文件内容
more 以翻页形式查看文件内容(只能向下翻页)
less 以翻页形式查看文件内容(可上下翻页)
head 查看文件的开始10行(或指定行数)
tail 查看文件的结束10行(或指定行数)
基于关键字搜索
命令grep用以基于关键字搜索文本
grep ‘linuxcast’ /etc/passwd
查找passwd文件中linuxcast的关键字,passwd必须是纯文本
find / -user linuxcast | grep Video
查找linuxcast用户所有文件中含linux关键字的文件(文件名)
find / -user linuxcast 2> /dev/null | grep Video
通过重定向把搜索结果中的标准错误输出到null设备当中,这样就不会显示报错信息
参数
-i 在搜索的时候忽略大小写
-n 显示结果所在行数
grep -n linuxcast /etc/passwd
-v输出不带关键字的行
-Ax在输出的时候包含结果所在行之后的指定行数
grep -A3 linuxcast /etc/passwd
-Bx在输出的时候包含结果所在行之前的指定行数
grep -B3 linuxcast /etc/passwd
基于列处理文本
命令cut用以基于列处理文本内容
cut -d: -f1 /etc/passwd
grep linuxcast /etc/passwd | cut -d: -f3
-d指定分割字符(默认是TAB)
-f指定输出的符号
-c基于字符进行切割
cut -2c-6 /etc/passwd
文本统计
命令wc用以统计文本信息
wc linuxcast
-l 只统计行数
wc -l linuxcast
-w 只统计单词
wc -w linuxcast
-c 只统计字节数
wc -c linuxcast
-m 只统计字符数
wc -m linuxcast
文本排序
命令sort用以对文本内容进行排序
sort linuxcast
-r进行倒序排序
sort -r linuxcast
-n基于数字进行排序
sort -n linuxcast
-f忽略大小写
-u删除重复行
sort -u linuxcast
-t c使用分隔符分割为列进行排序
-k x当进行基于指定字符为列的排序时,指定基于那个排序
删除重复行
命令sort -u可以用以删除重复行
sort -u linuxcast
命令uniq用以删除重复的相邻行
cat linuxcast | uniq
文本比较
命令diff用以比较两个文件的区别
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用以生成patch文件)
diff -u linuxcast linuxcast-new > final.patch
拼写检查
命令aspell用以显示检查英文拼写
aspell check linuxcast
aspell list < linuxcast
处理文本内容
命令tr用以处理文本内容
删除关键字
tr -d ‘TMD’ < linux
转换大小写
tr 'a-z''A-Z' < linuxcast
搜索替换
命令sed用以搜索替换文本
sed’s/linux/unix/g’ linuxcast
把linuxcast文件中所有linux换为unix
(g是代表全局替换)
sed’s/linux/unix/’ linuxcast
把linuxcast文件中第一个linux换为unix
sed’1,50s/linux/unix/g’ linuxcast
只替换1到50个
sed -e ‘s/linux/unix/g’ -e’s/nash/nash_su/g’ linuxcast
替换所有linux为unix,替换所有nash为nash_su
(-e参数表示可以同时指定多个替换)
sed -f sededit linuxcast
将替换内容保存在sededit,需要时调用