• 每天进步一点点!

文章分类

推荐网站

常用手册

awk实用程序(一)【原创】

一.什么是awk,nawk,gawk?

awk是一种用于处理数据和生成报表的UNIX编程语言。nawk是awk的新版本。gawk是基于linux的GNU版本。

 

二.awk的格式

awk程序是由awk命令,括在括号(或写在文件)中的程序指令以及输入文件的文件名几个部分组成。如果没有指定输入文件,输入则来自标准输入。

awk指令由模式、操作或模式与操作的组合组成。

awk以逐行方式扫描文件(或输入),从第一行到最后一行,以查找匹配某个特定模式的文本行,并对这些文本行执行(括在括号中的)指定动作。如果只给出模式而未指定动作,则所有匹配模式的行都显示在屏幕上。如果只指定动作而未定义模式,会对所有输入行执行自动动作。

 

1.从文件输入

格式:

awk 'pattern' filename

awk '{action}' filename

awk 'pattern {action}' filename

 

下面的例子分别演示了这三种格式

cat test_awk.txt 

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

类别:Linux | 浏览(121) | 评论(0) | 阅读全文>>

流编辑器sed(二)【原创】

sed范例

 

cat test_sed.txt

 

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

A BC     Def     hIc     lmN     ABC

You     are     a       good    boy

you     are     not     a       good girl

That's  a       very    lovely  dog

 

例1. 打印:p命令

 

sed '/abc/p' test_sed.txt 

 

输出:

abc     def     hic     lmn     abc

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

类别:Linux | 浏览(151) | 评论(0) | 阅读全文>>

流编辑器sed(一)【原创】

sed的工作流程

 

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。sed把当前正在处理的行保存在一个临时缓冲区中,这个缓冲区称为模式空间或临时缓冲。sed处理完模式空间中的行后(即在该行执行完sed后),就把该行发送到屏幕上(除非之前有命令删除这一行或取消打印操作),sed每处理完一行就将其从模式空间中删除,然后将下一行读入模式空间,进行处理或显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时临时缓冲区中,对这个副本进行编辑,所以不会修改或破坏原文件。

 

 

定址

 

定址用于决定那些行用于编辑。地址的形式可以是数字,正则表达式或二者的结合。如果没有指定地址,sed将处理输入文件中的所有行。

如果指定的地址是一个数字,则这个数字代表行号。美元符号可以用来指代输入文件的最后一行。如果给出的是逗号分隔的两个行号,那么需要处理的地址就是这两行之间的范围(包括这两行在内)。范围可以是数字,正则表达式或二者的结合。 

格式:

sed   'command' filename(s)

范例:

类别:Linux | 浏览(110) | 评论(0) | 阅读全文>>

linux查找文本命令 grep(三)【原创】

一些特殊的选项:

 

  • -e 选项

通常,第一个非选项的参数会指定要匹配的模式。你也可以提供多个模式,只要将它们放在引号里并以换行符分割他们。模式以减号开头时,grep会混淆,而将它视为选项。这就是-e选项排上用场的时候。他可以提供其参数为模式---即使它以减号开头。

例一:

 grep -e 'boy' -e '^abc' test_grep.txt 

#abc     def     hic     lmn     abc
#You     are     a       good    boy

使用-e可以以此匹配多个模式。

 

例二:

 cat test_grep2.txt

-v

-l

-F

-f

grep '-v' test_grep2.txt 此时光标停在第二行,没有找到匹配行。这是因为grep将“-v”当做了选项,将test_grep2.txt当做了要匹配的模式,等在要求匹配的文件,因此在等待。此时用-e可以解决了

grep -e '-v' test_grep2.txt 
# -v

 

     

  • -f 选项

可以将所有匹配模式写到一个文件中,用-f选项后面跟上此文件,这样可以一次匹配多个模式。

cat pat_file

good

boy

类别:Linux | 浏览(96) | 评论(0) | 阅读全文>>

linux查找文本命令 grep(二)【转载】

linux查找文本命令 grep

 

  • 实例

 

cat test_grep.txt 

 

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

A BC     Def     hIc     lmN     ABC

You     are     a       good    boy

you     are     a       good    girl

you     are     not     a       good girl

That's  a       very    lovely  dog

 

例一:

grep -c 'good' test_grep.txt 
#3

cat test_grep.txt | grep  'good' | wc -l
#3

 

这两种方法都可以统计含有‘good’的行数,但是第一种方法明显更简练。

 

例二:

 grep -i 'abc' test_grep.txt

#abc     def     hic     lmn     abc
#ABC     Def     hIc     lmN     ABC
#ABC     Def     hIc     lmN     dsf
#A BC     Def     hIc     lmN     ABC

 

grep使用的正则表达式没有像其他语言那样的修饰符,如i,s,m。对于忽略大小写的匹配,可以用选项-i实现。

类别:Linux | 浏览(97) | 评论(0) | 阅读全文>>