首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

【学习札记——Linux】Linux正则表达式和文件格式化处理

2013-02-19 
【学习笔记——Linux】Linux正则表达式和文件格式化处理Linux正则表达式和文件式化处理Table of Contents1 gre

【学习笔记——Linux】Linux正则表达式和文件格式化处理

Linux正则表达式和文件格式化处理Table of Contents1 grep2 sed3 printf (原来还有这个命令)4 awk5 文件对比

cat xxx | grep -n -A3 -B2 'eth' 将xxx文件中包含eth的行,以及它前面的两行,后面的三行都显示出来,并显示行号搜索特定字符串grep -n 'the' filename搜索filename中 含有 the的行,并显示行号grep -vn 'the' filename搜索filename中 不含 the的行,并显示行号grep -in 'the' filename搜索filename中含有the的行,并显示行号, 不区别大小写搜索相似字符串grep -n 't[ae]st' filename搜索含有tast 或者 test的行grep -n '[^g]oo' filename搜索含有oo  oo前面 不含有 g的行grep -n '[^a-z]oo' filename搜索含有oo  oo前面 不含有 小写字母的行grep -n '[0-9]' filename搜索 含有数字 的行搜索行首行尾grep -n '^the' filename搜索 行首 出现the的行grep -n '^[a-z]' filename搜索 行首 是小写字母 的行grep -n '^[^a-zA-Z]' filename搜索 行首 不是字母 的行grep -n '\.$' filename      搜索是.的行grep -n '^$' filename      搜索空行      由此可以理解^代表行首之前,$代表行尾之后,^$即代表行首行尾间什么都没有,即空行任意一个字符.与任意个字符*grep -n 'g..d' filename搜索有g??d模式的行,g..d有且仅有四个字符grep -n 'ooo*' filename搜索有两个以上o的行,即前两个o一定存在,最后一个o*表示0到n个o, 千万注意这里的*与通配符里*的不同grep -n 'g.*d' filename搜索有g开始,d结尾,中间任意个字符的字符串的行限定连续字符个数grep -n 'o\{2\}' filename搜索含有两个o字符串的行grep -n 'go\{2,5\}g' filename搜索含有开头g,结尾g,中间2到5个o的字符串的行grep -n 'go\{2,\}g' filename搜索含有开头g,结尾g,中间2个以上o的字符串的行

增删换显nl filename | sed '2,5d'列出filename每一行,并加行号,然后删除2到5行,删除第2行: '2d'删除第2行到最后一行: '2,$d'nl filename | sed '2i this is a new line'在第2行后增加新行,内容是"this is new line"nl filename | sed '2a this is new line one \ > this is new line two'nl filename | sed '2,5c this is a replace line'将2到5行替换为"this is a replace line"nl filename | sed -n '3,5p'打印3到5行

printf '%s\t%s\t%s\n' $(cat filename)printf '%10s %5i %8.2f\n' $(cat filename)

awk '条件类型1{动作1} 条件类型2{动作2}' filename

cat filename | awk '{print $1 "\t" $3}'每一行都要处理,因此无条件类型,动作即为打印第1列,第3列,中间以Tab分隔cat filename | awk '{print $1 "\t lines:" NR "\t columns:" NF}'NR:行数,NF,列数cat filename | awk 'BEGIN{FS=":"} $3 < 10 {print $1 "\t" $3}'FS是指分割符,$3 < 10是条件,{}内是动作

diff

热点排行