linux经常使用文字处理命令总结

linux grep命令

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

主要參数

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

-v:显示不包括匹配文本的全部行。

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

-l:查询多文件时仅仅输出包括匹配字符的文件名称。

-e:使用扩展的正則表達式

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

Linux sed命令

作用

Sed命令主要用于对整行进行处理,对列处理可使用以下介绍的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 就是啦!

Linux awk命令

awk能够独立的作为一门编程语言。这里仅仅介绍其简单的一部分

awk一般配合print和printf来使用

如:

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

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

 

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

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

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

END {printf “finish ”}'

 

显示硬链接数目大于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

原文地址:https://www.cnblogs.com/mfmdaoyou/p/6726307.html