awk题目3

1.

http://bbs.chinaunix.net/thread-4157887-1-1.html

cat file:

>a1
1
>a1
11
>a1
111
>a2
2
>a2
22
>b1
3
>b1
33

将各个title 下边的合在一起 输出如下:
>a1
1
11
111
>a2
2
22
>b1
3
33

awk ‘/^>/&&!a[$1]++||!/^>/‘

(可以改写成 awk ‘/>/{if(!a[$0]++){print $0};next}1‘ )

awk ‘{if($0~/>/){m=$0}else{a[m]=a[m]"\n"$0}}END{for(i in a)print i,a[i]}‘

(if else语句可以next代替,改写成awk ‘{if(/>/){m=$0}else{a[m]=a[m]"\n"$0}}END{for(i in a)print i,a[i]}‘)

awk ‘/>/{!a[$0]++;print}‘ f1
>a1
>a1
>a1
>a2
>a2
>b1
>b1

awk ‘/>/{print}‘ f1
>a1
>a1
>a1
>a2
>a2
>b1
>b1

awk ‘/>/{if(!a[$0]++)print $0}‘ f1
>a1
>a2
>b1

awk ‘/>/&&!a[$0]++‘ f1
>a1
>a2
>b1

时间: 2024-10-16 10:06:00

awk题目3的相关文章

awk练习题

awk题目 1,通过awk判断系统的用户都属于什么用户: [[email protected] ~]# awk -F ':' '{if($3 == 0 )print "超级管理员: "$1}{if($3 > 0 && $3 < 1000)print "系统用户: "$1}{if($3 >= 1000)print "自建用户:"$1}' /etc/passwd 2,显示出包含Lee和包含kevin的行的中间行 [[

Linux的shell脚本random相关应用和批量修改建立练习

一.三种取随机数并加密的方法 1.random的取数并加密 取数的方法: 取随机数的方法: 取随机数的并加密的方法: 加密后截取不同的位数: 2.data时间取随机数并加密 3.openssl取随机数并加密 二.随机数的应用 1.批量创建以随机数开头的文件 题目1:在/westos目录下创建10个开头以10个小写字母的随机数,结尾是_westos.html的文件 题目2:批量将html换成HTML 第一种方法 for 第二种方法 AWK 题目3:在/westos目录下创建10个开头以10个小写字

awk -F选项同时指定多个符号做为分割符时遇到空格坑,题目:请执行命令取出 linux 中 eth0 的 IP 地址

第三关课前考试题:3.请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答) 因为以前有个题讲过awk -F选项可以指定输入分割符,也可以同时使用多个符号作为分割符对文件进行切割,所以我决定先使用awk -F 以前awk -F同时指定多个分割符的例子: [[email protected] ~]# cat oldboy.txt I am oldboy,myqq is 31333741 [[email protected] ~]# aw

初学awk数组会遇到的几个常见问题

原题目: 处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题) 答案的详细讲解请参考: http://lidao.blog.51cto.com/3388056/1912219 文件内容: http://www.etiantian.org/index.html http://www.etiantian.org/1.html http://post.etiantian.org/index.html http://mp3.etiantian.org/index.html h

awk入门及awk数组相关实战

知识点: l 记录与字段 l 模式匹配:模式与动作 l 基本的awk执行过程 l awk常用内置变量(预定义变量) l awk数组(工作常用) l awk语法:循环.条件 l awk常用函数 l 向awk传递参数 l awk引用shell变量 l awk小程序及调试思路 [[email protected] ~]# awk --version|head -1 GNU Awk 3.1.7 第1章 记录和字段 record记录==行, field字段相当于列,字段==列. awk对每个要处理的输入数

只使用awk去除配置文件的注释等无效信息

题目: 只用awk去除配置文件中,注释,空行: 注: 1. 配置文件注释是#开始,到行尾,和shell中注释类似: 2. 注释,包括注释行和行尾注释: 3. 空行,包括只含有换行符的行和只有空白符的行: 解决方法: 1.  只去除注释行.行尾注释.不含空白符的行的方法: awk -F '#' '($1) { print $1}' xxx.conf 2.  只去除注释行.行尾注释.空行.含空白符的空行的方法: awk -F # '{ ($1 && $1 !~ /^[[:blank:]]*$/

源于一道文字游戏的题目

独立博客地址:http://cxh.me/2015/01/05/a-word-puzzle/ 起源是这样一道题目: 于是想到通过word dict来算一下: 先去下载了中文词库: git clone [email protected].com:ling0322/webdict.git 然后去掉词频信息: awk '{ if (length($1)==2) print $1}' webdict_with_freq.txt >webdict.txt 先按照出现位置来正则过滤候选集,并且去掉大/日/风

关于Linux运维的一些题目总结

一.有文件file1 1.查询file1里面空行的所在行号 awk ‘{if($0~/^$/)print NR}’ fileorgrep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’ 2.查询file1以abc结尾的行grep abc$ file1 3.打印出file1文件第1到第3行sed -n ’1,3p’ file1head -3 file1 二.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1 -A PREROUTIN

Linux面试题目(一)

第一次发帖,整理了一下Linux题目,答案不是标准的,欢迎讨论,进入各自理想的公司! 1.简述Apache两种工作模式,以及它们之间的区别.答:(1)prefork MPM使用多个子进程,每个子进程只有一个线程来处理一个http请求,直到这个TCP连接被释放.root主进程在最初建立startserver个子进程后,等待1秒钟,创建2个进程,再等待1秒钟,再创建4个进程,直到满足最小空闲进程的数量,这就是预派生的由来.这种模式可以不必在请求到来时再产生新的进程,从而提高了访问效率. (2)wor