linux常用文字处理命令总结

linux grep命令

作用 
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹   配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

主要参数

-n:显示匹配行及   行号。

-v:显示不包含匹配文本的所有行。

-I:不区分大   小写(只适用于单字符)。

-l:查询多文件时只输出包含匹配字符的文件名。

-e:使用扩展的正则表达式

-w:  只匹配整个单词,而不是字符串的一部分   (即由连续的字符,数字和下划线构成的整体)

L inux sed命令

作用

S ed命令主要用于对整行进行处理,对列处理可使用下面介绍的awk命令

用法   sed 选项   动作   文件

常用选项:

-n∶使用安静(silent)模式。在一般   sed 的用法中,所有来自   STDIN的资料一般都会被列出到萤幕上。但如果加上   -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 
  -f∶直接将   sed 的动作写在一个档案内,   -f filename 则可以执行   filename 内的sed 动作; 
 -i∶直接修改读取的档案内容,而不是由萤幕输出。  

常用动作

a   ∶新增,   a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行) ,如果要新增多行,需用 \换行 
  c   ∶取代,   c 的后面可以接字串,这些字串可以取代   n1,n2 之间的行! 如果字符串要换行,需要用 \配合 
  d   ∶删除,因为是删除啊,所以   d 后面通常不接任何咚咚; 
  i   ∶插入,   i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); 如果要插入多行,需用 \换行 
  p  ∶列印,亦即将某个选择的资料印出。通常   p 会与参数   sed -n 一起运作~ 
 s  ∶取代,可以直接进行取代的工作哩!通常这个   s 的动作可以搭配正规表示法!例如   s/old/new/g 就是啦!

L inux awk命令

awk可以独立的作为一门编程语言,这里只介绍其简单的一部分

awk一般配合print和printf来使用

如:

显示/etc/passwd中的 用户名,用户id和组id,前面加上行号(通过cat -n) -F用来说明划分列的分隔符,$1,$3,$4分别指第1,3,4行

cat -n /etc/passwd | awk -F “:” '{print $1 “\t” $3 “\t” $4}'

第一行显示username userid groupid然后显示和上个例子一样的内容(行号是通过awk中的NR显示的)

cat /etc/passwd | awk 'BEGIN {FS=”:”; printf “%d\t%10s\t%10s\t%10s\n”,NR,”username”,”userid”,”groupid”}\

{printf “%10s\t%10s\t%10s\n”,$1,$3,$4}\

END {printf “finish\n”}'

显示硬链接数目大于5的文件,$0代表整行

ll | awk '$2>5 {print $0}'

原始文件:

score:

|Math|English|C++|OS|SE|

|95     |89     |92 |98   |99|

|66     |78     |82 |81   |90|

|79     |65     |77 |82   |35|

命令:

cat score | awk 'BEGIN {FS="|"; print "MY Score List"}\  

NR==1 {print $0 "Sum" FS "Average" FS}\  

NR>1 {sum=$1+$2+$3+$4+$5;aver=sum/5;print $0 sum FS aver FS}\  

END {print "Finish"}'

输出:

MY Score List  

|Math|English|C++|OS|SE|Sum|Average|  

|95  |89     |92 |98|99|374|74.8|  

|66  |78     |82 |81|90|307|61.4|  

|79  |65     |77 |82|35|303|60.6|  

Finish


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值