这是看Linuxcast的笔记
Linux命令行文本处理工具
基于关键字搜索
命令grep用以基于关键字搜索文本
命令格式grep "关键字",并且通常和管道一起使用,如ls -l | grep "test". 以下是常用的参数
- -i 在搜索的时候忽略大小写
- -n 显示结果所在的行
- -v 输出不带关键字的行
- -Ax 在输出的时候包含结果所在行之后(after)的指定行数
- -Bx 在输出的时候包含结果所在行之前(before)的指定行数
基于列处理文本
命令cut用以基于列文本内容
使用示例:cut -d: -f1 /etc/passwd,即用':'当成分割符,输出第一列,分割的是/etc/passwd文件, 以下是常用的参数
- -d 指定分割字符(默认是TAB)
- -f 指定输出的列号
- -c 基于字作进行切割, 如cut -c2-6 /etc/passwd即输出/etc/passwd的每一行的第2到第6个字符
文本统计
命令wc用劲统计文本信息
使用示例:比如wc ok.cpp,以下是显示的结果和解释
9 | 23 | 96 | ok.cpp |
---|---|---|---|
行数,共9行 | 单词数,共23个单词 | 字节数,共96个字节 | 文件名,叫ok.cpp |
以下是常用参数
- -l 只统计行数
- -w 只统计单词数
- -c 只统计字节数
- -m 只统计字符数
文本排序
命令sort用以对文本内容进行排序
使用示例: 如sort file
- -r 进行倒序排序
- -n 基于数字进行排序
- -f 忽略大小写
- -u 删除重复行
- -t c 使用c作为分隔符为列进行排序
- -k x 指定用哪个key进行排序,通常用于, 进行基于指定字符分割为列的排序时,指定基于那个列排序
删除重复行
- 命令sort -u 可以用以删除重复行
- 命令uniq用以删除重复的相邻行
文本比较
命令diff用以比较两个文件的区别
以下是常用的参数
- -i 忽略大小写
- -b 忽略空格数量的改变
- -u 统一显示比较的信息(一般用以生成patch文件)
检查拼写
命令aspell用以显示检查英文拼写
处理文本内容
命令tr用以处理文本内容
-
删除关键字
tr -d "TMD" <file
-
转换大小写
tr 'a-z' 'A-Z' file
搜索替换
命令sed用以搜索并替换文件,这里有一个很好的教程, 以下列出一些常见的用法
-
sed 's/old/new/g' file
把file里单词old替换为new,如果同一行出现多个old,把每个old都改为new
-
sed '1,50s/old/new/g' file
把1到50行里每行出现的old改成new, 如果同一行出现多个old,把每个old都改为new
-
sed -e 's/old1/new1/g' -e's/old2/new2/g' file
执行's/old1/new1/g' 和 's/old2/new2/g' 两个命令
-
sed -f sedsrcipt file
对file执行sedscipt脚本中的命令
转载请注明出处,请忽用于任何商业用途--nothi
作者:nothi 发表于2013-9-5 22:43:39 原文链接
阅读:60 评论:0 查看评论