day 30 awk复习
2017-11-25 02:32
417 查看
awk练习题(http://www.apelearn.com/study_v2/chapter14.html)
用awk 打印整个test.txt (以下操作都是用awk工具实现,针对test.txt)
查找所有包含 ‘bash’ 的行
用 ‘:’ 作为分隔符,查找第三段等于0的行
用 ‘:’ 作为分隔符,查找第一段为 ‘root’ 的行,并把该段的 ‘root’ 换成 ‘toor’ (可以连同sed一起使用)
用 ‘:’ 作为分隔符,打印最后一段
打印行数大于20的所有行
用 ‘:’ 作为分隔符,打印所有第三段小于第四段的行
用 ‘:’ 作为分隔符,打印第一段以及最后一段,并且中间用 ‘@’ 连接 (例如,第一行应该是这样的形式 'root@/bin/bash'
)
用 ‘:’ 作为分隔符,把整个文档的第四段相加,求和
作答:
awk '{print $0}' test.txt
awk '/bash/' test.txt
awk -F':' '$3=="0"' test.txt
awk -F':' '$1=="root" ' test.txt| sed 's/root/toor/'
awk -F':' '{print $NF}' test.txt
awk
'NR>20' test.txt
awk -F':' '$3<$4' test.txt
awk -F':' '{print $1"@"$NF}' test.txt
awk -F':' '{(tot=tot+$4)};END {print tot}' test.txt
1、awk 中使用外部shell变量 http://ask.apelearn.com/question/199
注:“-v”选项用于定义参数,有多少个变量需要赋值,就需要多少个-v选项
2、awk 合并一个文件 http://ask.apelearn.com/question/493
NR表示读取的行数,FNR表示读取的当前行数。NR==FNR 就表示读取2.txt的时候, 同理NR>FNR表示读取1.txt的时候
3、把一个文件多行连接成一行 http://ask.apelearn.com/question/266
4、awk中gsub函数的使用 http://ask.apelearn.com/question/200 awk 'gsub(/222222/,"abc")' /tmp/awk/filename --#把filename 文件中所有的“222222”替换为“abc”
awk -F ':' 'gsub(/222222/,"abc",$1)
{print $0}' /tmp/awk/filename --#替换$1中的“222222”为“abc”
awk 'sub(/222222/,"abc")' /tmp/awk/filename --#把filename 文件中第一次出现的“222222”替换为“abc”
。结果与命令1的结果相同,该命令意思是把文件中每一行中第1次出现的“222222”替换为“abc”,而不是整个文件中第一次出现的222222。更改filename文件内容再验证如图2
5、过滤两个或多个关键词 http://ask.apelearn.com/question/198
grep
-E '3|ss' 1.txt --#找出文件1.txt 中包含"3"或者包含"ss"的行
egrep '3|ss' 1.txt --#用egrep实现
awk '/3|ss/' 1.txt
--#用awk实现
awk '/3/||/ss/' 1.txt
6、合并两个文件 http://ask.apelearn.com/question/945
paste filename1 filename2
如果要在两个文件连接处用一个指定的字符连接,可以用“-d”选项来指定
paste -d '+' a.txt b.txt
用awk 打印整个test.txt (以下操作都是用awk工具实现,针对test.txt)
查找所有包含 ‘bash’ 的行
用 ‘:’ 作为分隔符,查找第三段等于0的行
用 ‘:’ 作为分隔符,查找第一段为 ‘root’ 的行,并把该段的 ‘root’ 换成 ‘toor’ (可以连同sed一起使用)
用 ‘:’ 作为分隔符,打印最后一段
打印行数大于20的所有行
用 ‘:’ 作为分隔符,打印所有第三段小于第四段的行
用 ‘:’ 作为分隔符,打印第一段以及最后一段,并且中间用 ‘@’ 连接 (例如,第一行应该是这样的形式 'root@/bin/bash'
)
用 ‘:’ 作为分隔符,把整个文档的第四段相加,求和
作答:
awk '{print $0}' test.txt
awk '/bash/' test.txt
awk -F':' '$3=="0"' test.txt
awk -F':' '$1=="root" ' test.txt| sed 's/root/toor/'
awk -F':' '{print $NF}' test.txt
awk
'NR>20' test.txt
awk -F':' '$3<$4' test.txt
awk -F':' '{print $1"@"$NF}' test.txt
awk -F':' '{(tot=tot+$4)};END {print tot}' test.txt
1、awk 中使用外部shell变量 http://ask.apelearn.com/question/199
注:“-v”选项用于定义参数,有多少个变量需要赋值,就需要多少个-v选项
2、awk 合并一个文件 http://ask.apelearn.com/question/493
NR表示读取的行数,FNR表示读取的当前行数。NR==FNR 就表示读取2.txt的时候, 同理NR>FNR表示读取1.txt的时候
3、把一个文件多行连接成一行 http://ask.apelearn.com/question/266
4、awk中gsub函数的使用 http://ask.apelearn.com/question/200 awk 'gsub(/222222/,"abc")' /tmp/awk/filename --#把filename 文件中所有的“222222”替换为“abc”
awk -F ':' 'gsub(/222222/,"abc",$1)
{print $0}' /tmp/awk/filename --#替换$1中的“222222”为“abc”
awk 'sub(/222222/,"abc")' /tmp/awk/filename --#把filename 文件中第一次出现的“222222”替换为“abc”
。结果与命令1的结果相同,该命令意思是把文件中每一行中第1次出现的“222222”替换为“abc”,而不是整个文件中第一次出现的222222。更改filename文件内容再验证如图2
5、过滤两个或多个关键词 http://ask.apelearn.com/question/198
grep
-E '3|ss' 1.txt --#找出文件1.txt 中包含"3"或者包含"ss"的行
egrep '3|ss' 1.txt --#用egrep实现
awk '/3|ss/' 1.txt
--#用awk实现
awk '/3/||/ss/' 1.txt
6、合并两个文件 http://ask.apelearn.com/question/945
paste filename1 filename2
如果要在两个文件连接处用一个指定的字符连接,可以用“-d”选项来指定
paste -d '+' a.txt b.txt
相关文章推荐
- 【动态规划】【二分】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem B. Dissertation
- Day_01 - Day_05之一周Python学习总结与复习
- 30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)
- [每日一题] OCP1z0-047 :2013-08-10 INTERVAL DAY TO SECOND........................................30
- (30 hackdays day 21) Wakatime - 现在几点了,你在做什么呢
- (30 hackdays day 6) UserApp – 管管那帮用户
- (30 hackdays day 22) Import.io - 最简单好用的网页爬虫服务
- awk复习
- JavaScript 30 Day -- 12 图片的滑入滑出
- 复习Python的Day28
- 【one day one linux】好用的数据处理工具awk
- 【模拟退火】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem F. Factory
- ACM复习(30)9505 射了多少
- (30 hackdays day 26) Mailgun - 发Mail是个技术活儿
- (30 hackdays day 5) Page2Images – 特别肤浅的收费服务
- (30 hackdays day 24) Atatus - what happened before crash
- JavaScript 30 Day -- 01 JavaScript Drum Kit
- Day_11 - Day_15 之一周Python学习总结与复习
- JavaScript 30 Day -- 10 自定义视频播放器
- java SE复习笔记30