美文网首页
2018-09-09 Linux一些笔记 (二)

2018-09-09 Linux一些笔记 (二)

作者: Seizens_Swift | 来源:发表于2018-09-12 21:48 被阅读9次
    1. sed

s 替换

sed 's/Unix/unix/' instro  //不会对源文件修改

g 全局

sed 's/Unix/unix/g' instro   //不会对源文件修改

-n 只从文件中析取几行 一般与p一起使用。显式指明

sed -n '1,2p'  instro  //只显示前两行的内容

不提供行号则显式查找字符串的所在的行

sed -n '/unix/p' instro //显式unix躲在那行的内容

d 删除

sed '2,13d' instro
sed '/unix/d' instro
sed -n 'l' text 

显式文件所有行,把所有不可打印的字符显示\nn(nn出为八进制),制表符为\t

    1. tr 用来转换标准输入的字符

格式:

tr from-char  to-char

说明:其中from-char与to-char可以是一个或者多个字符,所输入的任何字符,如果在from-char中都会转化为to-char
注:tr 必须从定向到文件中

例:tr e r < instro

-s 用来压缩to-char中连续重复的字符

tr -s ':' '\11'

-d 删除输入的字符

格式:tr -d from-char

例: tr -d ' ' <instro

sed 's/ //g' instro

同样的效果
但是 tr 可能会更好一些,它比sed程序小,执行起来速度更快
tr 只针对字符一个 ,不是字符串

    1. grep

-i 匹配的过程中不区分大小写

grep -i 'the'  instro  //不区分大小写匹配
grep '[A-Z]' list  //list中包含一个大写字母的行
grep '[0-9]' data  // data中包含数字的行
grep '[A-Z]...[0-9]'  list //包含大写字母开头,数字结尾的5个字符的行
grep '\.pic$' filelist  //以.pic 结尾的行

-v 查找不包含匹配字符串的那行

grep -v 'unix' instro

-l 找出包含指定字符串的文件列表

grep -l 'unix' *   //包含unix字符串文件的列表
grep -l 'unix' * | wc -l  //包含该unix字符串文件的数目

-n 找到匹配字符串那行前面加上相对行号

grep -n 'unix' instro
    1. sort

默认情况下,取输入文件的首列,升序排序
-u 去除重复行
-r 取反排序(反向排序)
-o 把结果写入文件 sort name -o sorted_name
-k 可选取部分内容排序

-k Fstart.Cstart , Fend.Cend

Fstart 为字段,Cstart为字符 开始
Fend为字段,Cend为字符 结束
一般与-t一起使用
-t 设置分隔符
-n 按照算术方法排序

    1. uniq 查找重复行
uniq  infile outfile

注:uniq对重复行的定义是完全匹配的连续行,所以一般处理之前会用sort排序,再用uniq处理

root@803e41ac5ea4:/# cat test2  //原始文件内容
aaa
bbb
cccc
bbb
aaa
ccccc
cccc
root@803e41ac5ea4:/# uniq test2  //未做排序使用uniq的
aaa
bbb
cccc
bbb
aaa
ccccc
cccc
root@803e41ac5ea4:/# sort test2 | uniq  //排序后使用uniq的
aaa
bbb
cccc
ccccc

-d 只输出重复行

root@803e41ac5ea4:/# sort test2 | uniq -d
aaa
bbb
cccc

-c 显示该行在文中出现的次数

root@803e41ac5ea4:/# sort test2 | uniq -c
      2 aaa
      2 bbb
      2 cccc
      1 ccccc

相关文章

网友评论

      本文标题:2018-09-09 Linux一些笔记 (二)

      本文链接:https://www.haomeiwen.com/subject/dfpegftx.html