十二课预习任务

第十二课任务一

1,打印某行到某行之间的内容http://ask.apelearn.com/question/559
2
sed转换大小写 http://ask.apelearn.com/question/7758
3
sed在某一行最后添加一个数字http://ask.apelearn.com/question/288
4
,删除某行到最后一行 http://ask.apelearn.com/question/213
5
,打印1100行含某个字符串的行 http://ask.apelearn.com/question/1048
6
awk 中使用外部shell变量http://ask.apelearn.com/question/199
7
awk 合并一个文件 http://ask.apelearn.com/question/493
8
,把一个文件多行连接成一行 http://ask.apelearn.com/question/266
9
awkgsub函数的使用 http://ask.apelearn.com/question/200

 

第十二课预习任务二

10awk 截取指定多个域为一行 http://ask.apelearn.com/question/224
11
,过滤两个或多个关键词 http://ask.apelearn.com/question/198
12
,用awk生成以下结构文件 http://ask.apelearn.com/question/5494
13
awkprint打印单引号 http://ask.apelearn.com/question/1738
14
,合并两个文件 http://ask.apelearn.com/question/945
 

 

1,过滤红色框框中(行-行)的内容

sed -n '/\[abcfd\]/,/\[rty\]/p' 1.txt  过滤[abcfd]-[rty]之间的行

2,使用sed转换大小写字母

提示\u表示大写,\l表示小写

把每个单词的第一个字母变成大写

\b 表示单词的边界,& 表示 第一个 // 里面的内容

 把所有小写变大写,

把所有的小写变成大写

 

3,文章某一行后添加12,这里代表从第一个字符为4开始的行添加12

4,sed删除某关键字的下一行到最后一行

sed '/c/{p;:a;N;$!ba;d}' 4.txt 删除字符匹配d之后的行

删除c和c的下一行

5,使用sed打印1到100行包含某个字符串的行

例如打印有324的行

sed -n '1,100{/324/p}' 1.txt

6,awk中使用外部shell变量

 

 

7,合并1,2两个文件

awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'  1.txt  2.txt

NR==FNR 就表示读取1.txt的时候。 同理NR>FNR表示读取2.txt的时候

 

8,把一个文件多行连接成一行

 

cat 1.txt |xargs

9,awk中gsub函数的使用

awk 'sub(/aa/,"6666")' 1.txt  将出现aa字符的用6666替代

10,把所选段放到一行

awk -F ':' -v a=$i '{printf $a " "}' passed //这里用了空格号隔开

11,过滤一个或者多个关键字

grep -E '123|abc' filename  // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename    //egrep同样可以实现
awk '/123|abc/'  filename // awk 的实现方式

 

 

 

例如grep -E 'ab|cd' 2.txt

awk '/ab/||/cd/{print}' 2.txt  或者中间用或符号连接

12,用awk编写生成以下结构文件的程序

( 最后列使用现在的时间,时间格式为YYYYMMDDHHMISS)  各列的值应如下所示,每增加一行便加1,共500万行。

1,1,0000000001,0000000001,0000000001,0000000001,0000000001,0000000001,2005100110101
2,2,0000000002,0000000002,0000000002,0000000002,0000000002,0000000002,2005100110101

这里做测试用的10

 

awk 'BEGIN{for(i=1;i<=10;i++)printf("%d,%d,%010d,%010d,%010d,%010d,%010d,%010d,%d\n",i,i,i,i,i,i,i,i,strftime("%Y%m%d%H%M%s"))}'

 

13,Awk用print打印单引号,双引号

打印$

14,合并两个文件

或者用awk

awk 'NR==FNR {a[FNR]=$0} NR>FNR {print a[FNR],$0}' 1.txt 2.txt

增加一个+号

awk 'NR==FNR {a[FNR]=$0} NR>FNR {print a[FNR],"'"+"'",$0}' 1.txt 2.txt

NR==FNR {a[FNR]=$0}打开文件

NR,表示awk开始执行程序后所读取的数据行数

FNR,NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计

NR==FNR,第一个文件,以$0为下标

NR>FNR

 

15awkBEGINEND http://blog.51cto.com/151wqooo/1309851
16
awk的参考教程 http://www.cnblogs.com/emanlee/p/3327576.html

猜你喜欢

转载自blog.csdn.net/weixin_41654660/article/details/81976316