gawk

windows的 “\r\n” 提供一次换行,而在linux下只需要 “\n” 就可以了
将window下的转换为linux下的
sed -n ‘s/\r//gp'
sed指定行的范围:逗号
sed ‘A,BC’
C表示是命令 ,A,B是地址,可以是行号,正则表达式//,或是两者的结合
多重编辑 -e 
sed -e '1,3d' -e  '4,$s/Hemenway/jonse/'
第一重删除1到3行,第二重编辑讲第四行到最好一行中的每行第一次出现的A替换为B


gawk的print可以打印出变量,数值或者字符串常量,字符串必须用双引号括起来,参数直接用逗号分隔。如果
没有逗号,所有的参数就会被串在一起。逗号等价于OFS中的值,默认是空格。
print a  a 是变量
print "a"  a是字符串。


记录的分隔符
RS 分隔符  record seperal 
ORS 输出分隔符 ouput record seperal
内置变量


字段的分隔符
FS field seperal
OFS ouput field seperal


gawk中的模式以/为开头,/为结尾,头尾用‘’来表示,否则则被gawk当成自己的
的元字符解析
  gawk ‘/tom/’


BEGIN模块 先初始化,后逐行读入
gawk ‘BEGIN{FS=":";OFS="\t"}{print $1,$2,$3}'
END模式:执行完所有行以后,才处理END模式。
gawk ‘/Mary/{count++}END{print"Mary was found" count "time"}’
每遇到一个包含模式Mary行,用户自定义的变量count 就加1,awk处理完整个文件后,就打印出end后面的


gawk的输出重定向 
>  则文件被打开并清空,文件一旦打开,就会包吃打开状态知道显示关闭或者awk程序终止,伺候的
print语句的输出都将追加到文件的尾部
>> 也用于打开,但不清除文件内容,它只向文件追加内容。


输入重定向 getline
getline是函数 用于从标准输入、管道、文件读取输入
getline()函数用于读取下一输入行,并且设置内置变量NF,NF和FNR,如果读到就返回1,EOF返回0,错误,-1
gawk ‘BEGIN {while ("ls" | getline) print}’
从ls命令的输出中读取一行,循环读取




system 函数
awk的内置函数system以linxu的系统命令作为参数,执行该命令且将命令的退出状态返回给awk函数。
注意:作为参数的linu命令必须加双引号
system("linux command")
gawk ‘BEGIN{system("ls -l");system("clear")}’ 先执行ls -l 随后执行clear命令

你可能感兴趣的:(linux,system,正则表达式,linux,command,windows,c)