Linux命令之文本处理,命令行文本处理工具
分类:高并发

Linux命令之文本管理(二)

cut命令
cut命令用来操作文件的列,能够视为列编辑器;与之对应是超多的行“编辑器”,如sed、grep、sort等,它们操作文本时,以行为单位。
cut的机要成效就是出口文本的某一列或几列。对于俄文文本,二个字符就占领一列,所以输出几列正是出口多少个字符。
尤为重要选拔如下:

-c : 钦命要出口的列数,能够是单个数字,也能够是如3-5等等的界定。

[email protected]:~$ cat new 
apple   3
Apple   7
pear    6
pear    4
banana  1
orange  11
[email protected]:~$ cut -c 1-6 new 
apple  
Apple  
pear    
pear    
banana
orange

-b : 指定每行要输出的字节数,与-c选项基本一样,尤其对英文文本,因为一个英文字母就是一个字节(我觉得把英文改成ASCII文本更合适)。

[email protected]:~$ cut -b 3 new 
p
p
a
a
n
a

-f : cut更强大的地方在于处理格式化的文本,即每行可以分为几个字段的那种。似乎很多命令都提供这种功能,比如sort,但是做的都很勉强,关键是它们对分隔符的识别太差了。在这方面,awk遥遥领先。 -f选项用来指定输出哪个字段,默认的分隔符是tab。其实多个空格似乎也能识别,有时间我会专门研究一下分隔符的问题。

[email protected]:~$ cut -f 2 new 
3
7
6
4
1
11

实际上new文件中名字和数字之间的分隔符并不是tab,而cut却正确识别了;然而,这种情况是不确定的,比如下例:

[email protected]:/etc/network$ sudo netstat -apn | sed '3,6 p' -n | cut -f 1
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2899/sendmail: MTA:
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1192/named      
tcp        0      0 0.0.0.0:538             0.0.0.0:*               LISTEN      1251/gdomap     
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      672/smbd 

这么明显的分隔都没能识别,源码怎么写的???

-d : 指定分隔符,一般配合-f使用。分隔符一般只能指定单个字符。 -s : 仅输出包含分隔符的行。它会覆盖-f的一些功能,因为只有-f时,会同时输出不包含分隔符的行;加上-s选项后,就会删除掉没有包含分隔符的行。 –output-delimiter=str : 指定输出分隔符为str。默认与输入分隔符一致。

[email protected]:~$ cut --output-delimiter=: -f 1-2 new 
apple: 3
Apple: 7
pear: 6
pear: 4
banana: 1
orange: 11
[email protected]:~$ cut --output-delimiter=: -c 1-4 new 
appl
Appl
pear
pear
bana
oran

显然,这个选项只对不同字段之间有效。。。

uniq命令 可以检测出文本中重复的行,类似与sort中-u选项。

-d : 只显示那些重复的行。

[email protected]:~$ cat new 
apple   3
apple   3
Apple   7
pear    6
pear    4
banana  1
orange  11
[email protected]:~$ uniq -d new 
apple   3

-c,–count : 在每行前面显示重复次数。

[email protected]:~$ uniq -c new 
2 apple     3
1 Apple   7
1 pear    6
1 pear  4
1 banana  1
1 orange    11

-i : 忽略大小写。

-u : 仅输出不重复的行。

[email protected]:~$ uniq -u new 
Apple   7
pear    6
pear    4
banana  1
orange  11

主要的就是这几个选项了,其他的比如-s、-f等,试了几次不管用。

cut命令 cut命令用来操作文件的列,能够算得列编辑器;与之对应是许多的行编辑器,如sed、grep、sort等,它们...

grep

Linux入门底工:命令行文本管理工科具

文本管理


 

文本浏览

功能:
搜寻过滤工具,查找只怕过滤出符合有个别形式的字符串,能够和正则表明式搭配使用。
因而本篇博客适合有正则表明式幼功的读者读书哦~。
用法:

凭仗关键字寻找

cat    查看文件内容

grep '正则表达式' 操作的文件名
egrep '正则表达式' 操作的文件名
grep -E '正则表达式' 操作的文件名
grep -F '匹配的字符串' 操作的文件名
fgrep  '匹配的字符串' 操作的文件名

 

more    以翻页格局查看文件内容(只可以向下翻页)

其间,egrep相当于grep -E,表示接受增加(Extend)的正则表明式语法。即对于? + {} (卡塔尔国 | 这几个字符取其独出机杼意义。直接利用grep表示选拔正则表明式基准的(Basic)正则表明式语法。
fgrep相当于grep -F,表示不寻找正则表明式方式,相称固定字符串,相称到了会输出整行。
eg:从file文件中搜索官方的手提式有线电话机号码:
图片 1

指令grep用以基于关键字寻觅文本

less    以翻页格局查看文件内容(可上下翻页) 

图片 2

 

head    查看文件的起来10行(或钦命行数)

sed

$ grep 'shuangde'  /etc/passwd

tail    查看文件的截至10行(或内定行数)


$ find  / -user  shuangde | grep Video

    基于关键字搜索

简介:
sed是生龙活虎款流式文本编辑器,它会将文件中的内容意气风发行业作风度翩翩行读出来,看是不是与正则表达式相配,即使协作则进行相应的操作,不然放任或输出然后读取下后生可畏行。能够一遍拍卖多个文件,暗许依照基准方式(Basic)相称

 

一声令下grep 用以基于关键字搜索文本

用法:

-i     在探究的时候不经意大小写

grep "xxx" 指标文件

sed '/pattern/action'

-n    显示结果所在行数

find /-user xxx | grep video 查找所有user 为xxx

里面,pattern 表示对要同盟的行的描述,即正则表明式,action表示卓殊到了今后对应的操作。
1、将同盟到的剧情打字与印刷出来,对应的action:p
图片 3
能够看到,sed将文件全体剧情都打印了出来,只不过万分到了的打字与印刷了四回。想只打字与印刷匹配到的行加上‘-n’参数就可以:
图片 4

-v    输出不带关键字的行

如:find / -user root 2> /dev/null | grep xxx

2、将非常到的内容删除,对应的action:d
图片 5
注明,sed并不会纠正原来的著工件。假如想一向改变原工件,须要加多‘-i’参数就能够:
图片 6

-Ax  在出口的时候包涵结果所在行之后的钦点行数  

追寻所属客户时root 的还要把错误消息输出到垃圾回笼里 关键字时xxx的新闻

3、将相配到的行内的某一方式的字符串替换,对应的action:s
用法与事前有几许小差距:

-Bx  在出口的时候包涵结果所在行早先的钦命行数

文件中富含video的文件音讯

sed '/pattern/s/pattern1/pattern2/'
sed '/pattern/s/pattern1/pattern2/g' 

 

-i 在搜索时候不经意大小写

代表,相称适合pattern的行,将该行第三个相配pattern1的字符串替换为pattern2。最终加g表示全局替换。
eg:
图片 7

传说列管理公事

-n 彰显结果所在行数

awk

 

-v 输出不带关键字的行 (取反卡塔尔


命令cut用以基于列管理公事内容

-Ax 在输出的时候包罗结果所在行之后的钦点行数

简介:
awk是比sed更加强劲的公文编辑器,既能够按行管理文件,也足以按列管理公事。同临时间依旧一门脚本言语,有像C语言相同的大循环和支行,有个别部分和C语言很帅似。

$ cut  -d :  -f  1 /etc/passwd   用冒号分隔并显示passwd文件的第一列(即便彰显多列: -f 1,2,3 State of Qatar

-Bx 在出口的时候包蕴结果所在行在此之前的钦命行数

用法:

$ grep  shuangde  /etc/passwd  |  cut  -d:  -f3

依据列管理文件

awk '/pattern/{actions}'

 

命令cut用以基于列管理文件内容

pattern是正则表明式,actions是⼀雨后春笋操作。 awk程序⼀⾏⼀⾏读出待管理⽂件,假设某⼀⾏与pattern相称,可能满⾜condition条件,则执⾏相应的actions,假若⼀条awk命令独有actions部分,则actions作⽤于待管理⽂件的每⼀⾏。
1、awk按列打字与印刷。action:print/printf
图片 8
除此之外print,还足以用printf,用法和C语言一模二样。print后所跟的$2表示打字与印刷第二列,$1代表第一列,$0表示具备的列。awk暗中认可的列分隔符是连连的空格或然Tab,也能够协和制定列分隔符, 参数:-F后跟制定的标记:
图片 9

 

cut -d: -fl /etc/passwd

2、awk脚本
图片 10
剧本第一行:#!/usr/bin/awk -f 指定awk解释器。
awk会先进行BEGIN标签内的语句,然后读取钦赐文件内容,实践花括号内的言语,读取实现实行END标签内的言辞。

-d  内定分隔符(暗中同意是TAB)

grep xxx /etc/passwd | cut -d: -f3

cut

-f   钦赐输出的列号

-d 钦定分割字符(暗许是TAB)


-c  基于字符进行分割

-f 钦点输出的列号

简介:
cut以行为管理对象,负担数据的分割。

 

-c 基于字符实行切割

用法:

$ cut  -c2-6  /etc/passwd

  cut -c2-6 /etc/passwd

cut -b   //按字节切割 
cut -c    //按字符切割

显示第2~6个字符

    文本总括

eg:
图片 11
能够看出,按字符切割时,八个字母和贰此中中原人民共和国字都算是三个字符。除了那一个之外,cut能够钦点域分隔符,切割钦点的域:
图片 12
-d 选项钦赐域分隔符,-f选项钦定切割第几个域。

 

命令wc(word countState of Qatar用以总结文本新闻

 

-l 只总结行数

文本总结

-w 只总括单词

 

-c 只总结字节数

一声令下wc(word  count)用以总计文本音讯

-m 只总结字符数

$ wc  file   输骑行数,单词数,字节数

  文本排序

 

  命令sort用以对文本内容举办排序

-l   (lines)   : 只总括行数

-r 实行倒序排序

-w (words) : 只总计单词数

-n 基于数字进行排序

-c  (bytes):只计算字节数

-f 忽视大小写

-m (chars):只总结字符数

-u 删除重复行

 

-t c 使用c作为分隔符分割为列进行排序

 

-k x  当实行基于钦赐字符分割为列的排序时,钦赐基于哪个列排序

 

  删除重复行

文本排序

指令sort -u 能够去除重复行  (不过交易会开排序)

 

命令uniq用以删除重复的相邻行

sort命令:用以对文件的行内容实行排序(只援助Republic of Croatia语和数字)

  文本相比较

$  sort  filename 

一声令下diff用以比较四个文件的分别

 

diff 文件1 文件2

-r    倒序排序

-i 忽视大小写

-n   基于数字实行排序

-b 忽视空格数量的改进

-f    忽略大小写

-u 统黄金时代呈现比较新闻(平日用于生成patch布丁文件)

-u   删除重复行

diff -u 文件1 文件2 >final.patch

-t c  使用c作为分隔符分割为列进行排序

  拼写检查

-k x  当实行基于内定字符分割为列的排序时,钦点基于那二个列排序

命令aspell 用以呈现检查República Portuguesa语拼写

 

aspell check xxx

删去重复行

aspell list < xxx

 

  tr命令(translate)用以处理文件内容

$ sort  -u  能够去除重复行

剔除关键字

$ uniq  用以删除相邻的重复行

tr -d 'TMD' < xxx

 

退换大小写

文本比较

tr 'a-z' 'A-Z' <目的文件

diff 命令:大器晚成行行地相比五个公文文件的反差

追寻替换

$  diff   file1  file2

指令sed 用以寻找并替换文本

-i   忽视大小写

sed 's/linux/unix/g' 文件 

-b  忽略空格数量的改换

表达:寻觅文件里有着linux替换到unix ,g的意味是后生可畏旦有大器晚成行四个门当户对一齐替换

-u  统意气风发显示相比新闻(通常用来生成patch文件) 

sed '1,50s/linux/unix/g' 文件

$ diff  -u  file1  file2  >  final.patch

解释:只替换 1-50行

 

sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' xx

拼写检查

降解:-e 同一时候替换三个

 

sed -f sededit xxx

aspell 命令: 展现检查塞尔维亚共和国语拼写

解说:将常用命令存到 sededit里方便重复使用

$  aspell  check  file    检查文件file内的单词拼写,能够张开改过

$  aspell list  file   把公文file内错误单词,并展示出来

 

 

拍卖文件内容

 

tr 命令 : 纠正照旧去除文本内容

 

去除关键字

$  tr  -d  'TMD'  < filename    把T,M,D七个假名都删掉

 

转移大小写

$  tr  'a-z'  'A-Z'  < filename

 

 

追寻替换

 

sed命令: 用以寻觅并替换文本(stream editor for filtering and transforming text.)

 

$ sed  's/linux/unix/g'   file

$ sed  '1,50s/linux/unix/g'  file

$ sed  -e  's/linux/unix/g'  -e  's/hehe/haha/g'  file    能够钦赐多个特别方式

$ sed  -f  sededit  file

基于入眼字寻觅命令grep用以基于关键字搜索文本 $ grep shuangde /etc/passwd $ find / -user shuangde | grep Video -...

本文由10bet手机官网发布于高并发,转载请注明出处:Linux命令之文本处理,命令行文本处理工具

上一篇:Linux下双物理网卡设置成虚拟网卡,CentOS下网卡配置和双网卡绑定小贴士 下一篇:没有了
猜你喜欢
热门排行
精彩图文