awk 替换练习题

练习题:http://blog.chinaunix.net/uid-10540984-id-3086644.html

cat file:

a b c a d a

s d d d x s a

h j s a s h j h

j d f j a s j k j

要求:删除行内与第一列字符重复的字符,shell、sed、awk各写一个。达到这个结果:

a b c d

s d d d x a

h j s a s j

j d f a s k

awk ‘ {s=$1;printf s;for (i=2;i<=length($0)-1;i++) if($i!=s) printf $i;print ‘\n‘}‘ test.txt

人家的答案:awk ‘{a=$1;gsub(" ?"a,"");print a""$0}‘ file

时间: 2025-01-15 00:27:44

awk 替换练习题的相关文章

awk替换第几行第几列的值

代码如下: awk '{if(2==NR){gsub(/.*/, 300, $5)}print}' list.txt 将文件list.txt的第2行第5列的值替换为300

grep awk sed 练习题

1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?awk  -F ':' '$3 > 500' passwd 2. awk中 NR,NF两个变量表示什么含义?awk -F ':' '{print $NR}' /etc/passwd  会打印出什么结果出来?NR是行数 NF是段数 会打印第一行的第1段,第二行的第2段,第7行的第7段,以及空行 3. 用grep把1.txt文档中包含'abc'或者'123'的行过滤出来,并在过滤出来的行前面加上行号. egrep -n

不看绝对后悔的Linux三剑客之awk实战精讲

一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用.本章主要讲解awk命令的运用 1.2 awk环境简介 [[email protected] ~]# cat /etc/redhat-release 

awk的使用方法

                             AWK用法 一.知识点一 1.域分割 -F 确定分割符 如果不加-F 默认以空格分割符  cat /etc/passwd | awk -F: '{print $1,$2,$3}' 2.抽取域 cat /etc/passwd | awk -F: '{print $1}' 3.$0代表全局域,也就是所有的记录 cat /etc/passwd | awk -F: '{print $0}' 4.单独打印记录 cat /etc/passwd | a

linux基础学习-18-linux三剑客之awk命令精讲

快捷跳转目录: * 第1章:awk基础入门       * 1.1:awk简介 * 1.2:学完awk你可以掌握: * 1.3:awk环境简介 * 1.4:awk的格式 * 1.5:模式动作 * 1.6:awk的执行过程 * 1.6.1:小结awk执行过程 * 1.7:记录和字段 * 1.7.1:记录(行) * 1.7.2:记录分隔符-RS * 1.7.3:对$0的认识 * 1.7.4:企业面试题 * 1.7.5:awk记录知识小结 * 1.7.6:字段(列) * 1.7.7:ORS与OFS简介

awk简单用法

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. 1.域分割符 awk 在没有使用-F 指定分割符的时候.默认以空格为分割符. 域分割 $0代表文本内容全文显示 $1 代表分割第一个域 $2 代表分割第二个域 依

mysql -e与awk联合导出csv文件

CleverCode发现一个导出mysql数据成csv格式的简单方法. 1)mysql -e使用简介 使用说明:执行一个sql语句并且退出. 格式样例: 1)mysql -uroot -p123456 -h 192.168.10.210 -P 3306 db_logs -e "show databases;" 2)mysql -uroot -p123456 -h 192.168.10.210 -P 3306 db_logs -e "select cdate,uid,clien

grep,sed,awk 个人总结

正则表达式 ifconfig |sed -n '2p' |sed 's.*inet//g' |sed 's#netmask.*$##g' #用/ # 均可 理论可用任何特殊字符替代 #sed -r 后面可跟扩展正则 扩展正则 + (.*) ifconfig |sed -n 2p |sed -r 's#^.*inet (.*) Broast.*$#\1#g' # \1 代表正则中的第一个GROUP 即(.*)里的内容 ifconfig |sed -nr '2s#^.*inet (.*)net.*$

sed-awk命令详解

第2章 ***********sed***********. 1目  录 2.1 -------sed命令小结及小结图---- 1 2.2 -------第几行---------- 2 2.3 -------最后一行---------- 2 2.4 ---------从哪行到哪行-------- 3 2.5 -------某几行--------- 3 2.6 ---------上插入行----------- 3 2.7 -----------不包含oldboy(条件)----- 4 2.8 --