Linux20180503 六周第五次课(5月3日)awk扩展

六周第五次课(5月3日)
复习
扩展
awk 中使用外部shell变量http://ask.apelearn.com/question/199

相对来说,awk更像是一种简单的编程语言

A=44echo "ABCD" | awk -v GET_A=$A ’{print GET_A}’
说明:-v选项用于定义参数,这里表示将变量A的值赋予GET_A。
有多少个变量需要赋值,就需要多少个-v选项。与之等价的:应用于脚本中:

awk 合并一个文件 http://ask.apelearn.com/question/493 
我有这样的需求,需要把两个文件中,第一列相同的行合并到同一行中。举个例子,有两个文件,内容如下
cat 1.txt
1 aa
2 bb
3 ee
4 ss

cat 2.txt
1 ab
2 cd
3 ad
4 bd
5 de

合并后的结果为:

1 ab aa
2 cd bb
3 ad ee
4 bd ss
5 de

实现的命令为:
awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'  1.txt  2.txt

这个涉及到

解释:NR表示读取的行数,FNR表示读取的当前行数
所以其实NR==FNR 就表示读取2.txt的时候。 同理NR>FNR表示读取1.txt的时候
数组a其实就相当于一个map把一个文件多行连接成一行 http://ask.apelearn.com/question/266

awk中gsub函数的使用 http://ask.apelearn.com/question/200

awk 截取指定多个域为一行 http://ask.apelearn.com/question/224

过滤两个或多个关键词 http://ask.apelearn.com/question/198

用awk生成以下结构文件 http://ask.apelearn.com/question/5494

awk用print打印单引号 http://ask.apelearn.com/question/1738

合并两个文件 http://ask.apelearn.com/question/945

awk的参考教程 http://www.cnblogs.com/emanlee/p/3327576.html

原文地址:http://blog.51cto.com/13691454/2112889

时间: 2024-11-09 23:15:36

Linux20180503 六周第五次课(5月3日)awk扩展的相关文章

三周第五次课(12月29日) 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间

三周第五次课(12月29日)4.5/4.6 磁盘格式化4.7/4.8 磁盘挂载4.9 手动增加swap空间 [[email protected] ~]# [[email protected] ~]# mke2fs命令文件系统管理mke2fs命令被用于创建磁盘分区上的"etc2/etc3"文件系统. 语法:mke2fs(选项)(参数) 选项:-b<区块大小>:指定区块大小,单位为字节:-c:检查是否有损坏的区块:-f<不连续区段大小>:指定不连续区段的大小,单位为

三周第五次课(12月29日)

4.5/4.6 磁盘格式化 centos7所支持的文件系统 格式化 -t 指定格式化成的文件系统  -b 指定块大小 mke2fs -t ext4 -b 2048 /dev/sdb1   mke2fs不支持-t xfs mkfs.ext4 /dev/sdb1 实际等于mke2fs -t ext4 /dev/sdb1 mkfs.xfs /dev/sdb1 这个命令会有提醒  加一个-f强制  mkfs.xfs -f /dev/sdb1 此时分区未挂载,使用命令blkid /dev/sdb1 查看

三周第五次课(2月9日)

这是linux 所支持的文件系统格式mke2fs 格式化 -t(指定密钥格式化成什么系统)-b (指令块大小)-m(指定分区预留的大小)-i(指定多少个字节对应多少个inode)一个磁盘不分区也可以格式化blkid /dev/sdb 查看格式文件系统 格式化之后才能挂载文件系统挂载命令mount卸载 umount -l /MNT/vi /etc/fstab 里面挂载了很多系统配置文件手动增加swap空间格式化swap= mkswap -f /tmp/newdiskswapon 加载到现在的文件

Linux学习笔记第三周第五次课(2月9日)

4.5/4.6 磁盘格式化 CentOS7以XFS作为默认的文件系统: mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs都是格式化命令: mke2fs -t ext4 ==mkfs.ext4:其他命令类似,mke2fs暂不支持xfs类型: mke2fs命令选项如下: -t指定文件系统类型type: -b指定块大小block: -m指定分区预留的大小百分比: -i指定多少个字节对应一个inode: 分区格式化,指定文件系统类型ext4,块大小2048B,预

Linux20180416三周第五次课(4月10日)

4.5/4.6 磁盘格式化4.7/4.8 磁盘挂载4.9 手动增加swap空间 磁盘格式化 分区后只有格式化后才可以使用 可以查看文件系统  cat /etc/filesystems 可以查看centos7支持的文件格式 centos7默认的是 xfs的文件格式 centos6默认的是ext4 格式化的命令是: mke2fs -t 指定文件系统类型 -b 指定块大小 fdisk -l 查看目前的分区 可以看到sdb已经分了一个区sdb1 格式化一下 但是遗憾的是mke2fs 不支持 -t xfs

三周第三次课(12月27日) 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

三周第三次课(12月27日)3.7 su命令3.8 sudo命令3.9 限制root远程登录 su命令: 用户和工作组管理: su命令用于切换当前用户身份到其他用户身份, 变更时须输入所要变更的用户帐号与密码. 语法: su(选项)(参数) 选项: -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份: -f或--fast:适用于csh与tsch,使shell不用去读取启动文件: -l或--login:改变身份时,也同时变更工作目录,以及HOME,SHE

Linux学习笔记第三周第三次课(2月7日)

3.7 su命令 root用户切换到普通用户命令,su: 完全彻底切换 - ,连环境变量,家目录也切换,命令为#su - aming: 查看当前登陆用户,命令为#whoami: 查看当前目录,命令为#pwd: 查看用户UID,GID,组,家目录,用户shell目录,命令为#id: 切换用户,环境变量和家目录没切换,命令为#su aming: 退出切换的用户,命令为#exit: 当前用户下,不切换到aming用户,使用aming账号,执行touch命令,#su - -c "touch /tmp/a

Linux学习笔记第三周第四次课(2月8日)

4.1 df命令 df,report file system disk space usage汇报文件系统磁盘空间使用情况: df命令格式:df [选项] df -a:all 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统. df -h:human readable以容易理解的格式输出文件系统大小,例如124KB.345MB.46GB. df -i:inodes 显示i节点使用情况. df -m:以MB为单位显示文件系统使用情况: df -t:type 显示各指定类型的文件系统

四周第五次课3月2日

zip压缩工具 yum -install -y zip 压缩文件命令 是需要安装的可以压缩目录 zip压缩完了文件不会删除 yum -install -y unzip 解压文件命令也是要安装的 unzip可以解压到指定 的目录下 -Dtar打包 cvf的意思(c=创建 V就是可视化 f就是打包的名字)能打包就能就能解包 tar -xvf tar -tf 可以查看 打包的文件列表如果文件里面有你不想引起打包的文件可以增加 --exclude打包并压缩 tar -zcvf 解包 tar -zxvf