Linux [文本处理]

cut -- 将行根据需求分成指定的片段

常用参数:

-d 以。。。为分割符   -d: 以:分割行(类似于python中的split)

-f 得到分割后的某个列  -f1-3 得到分割后的第1个到第3个列 (即1,2,3列,这里面是从1开始的,而不是0)

-c 指定位置字符 -c1 得到行的第一个字符

 

grep -- 查找文本内容

常用参数:

-i 忽略大小写

-n 显示行数

-An 显示查找到的字符的后(After)n行

-Bn 显示查找到的字符的前(Before)n行

-v 显示不含有该字符的行

 

例子:

grep yechengzhou /特长/passwd | cut -d: f6 (得到yechengzhou用户的家目录)

 

wc -- 统计文本信息

-l 行

-w 单词

-m 字符

-c 字节

不加参数  wc filename 得到结果为

行数 单词数 字符数 文件名

 

 

sort -- 对文本内容进行排序

默认 根据首字母排序

参数:

-r 倒序

-n 指定基于数字进行排序

-f 忽略大小写

-u 删除重复行  (or find | uniq 只能删除相邻的重复行)

-t c 根据c为分隔符将行分割成列,并将列排序

 

diff -- 比较两个文件的区别

-i 忽略大小写

-b 忽略空格数量的变化

-u 统一显示比较信息(一般用于生成patch)

 

tr -- 对文本进行处理, 只针对标准输出,如果要修改文件内容需要重定向

tr -d "TMD" < filename 删除文本中的TMD 输出, 文件内容不变

tr ‘abc‘ ‘ABC‘ < filename 将文件中的小写a,b,c替换成A,B,C, 文件内容不变

-s , 删除所有 str_from 重复出现字符序列,只保留一个 ,即重复字符串压缩为一个 
【一个很经典的应用就是把不规律的空格缩减为一个空格: tr -s ‘ ‘ filename】 

 

sed -- 搜索替换,使用正则表达式处理, 替换后标准输出

sed 正则 文件

例子:

sed "1,50s/linux/unix/g" filename 将filename中的1-50行的所有linux替换成Unix (/g代表所有, 不加/g只替换第一个)

sed -f sedfile filename根据sedfile中的内容进行sed操作(比如说sedfile 的内容是 "s/linux/unix/g" 那么就是将filename中的所有linux替换成unix)

sed -e "s/linux/unix/g" -e "s/windows/OS/g" filename 同时做多个替换

 

Linux [文本处理],古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。