shell脚本,awk利用NF来计算文本显示的行数。

解释:

1.awk ‘NF{a++;print a,$0;next}1‘ file4

首先判断NF是否存在值,第一行第二行第三行第四行都存在,进行执行后面的输出,输出后碰到next后,就结束了后面的操作,NF不存在的行不进行执行{}里面的操作,然后就进行默认1输出。

2.awk ‘NF{a++;$0=a" "$0}1‘ file4

NF存在,执行{}里面的操作,操作就是将原来$0=a的值替换成$0=1 a,次数替换之后没有进行打印,然后继续向后执行操作,碰到1默认输出$0,故输出的值就是1 a等。

时间: 2024-09-30 06:41:01

shell脚本,awk利用NF来计算文本显示的行数。的相关文章

学习Shell脚本编程(第1期)_Shell命令行书写规则

Shell命令行的书写规则 对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(:)分隔命令,例如: [[email protected] root]# ls a* -l;free;df 长Shell命令行可以使用反斜线字符(\)在命令行上扩充,例如: [[email protected] root]# echo "this is \ >long command" This is long com

shell脚本-awk

一.awk工作原理 二.awk的用法 awk [option] ... 'program' FILE ...     1.program语句必须使用单引号!    2.多条program语句使用用大括号包含起来,可以并列,可以嵌套三.awk的常用参数 -F   #指定分隔符 示例:awk -F: '{print $1}' /etc/passwd     #输出/etc/passwd/文件中以:为分隔符的第一列 -v    #因为awk是一种语言编译器,能自己定义变量,同时也有自己的内置变量(与s

shell 脚本,在调试时,FOR循环那行代码,总是出现错误syntax error near unexpected token do(转)

这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n" 可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m 需要转换成linux/unix格式的"\n" 具体转换办法就是转换换行符 可以用sed命令处理一下文件,命令如下: sed 's/\r//' 原文件 >转换后文件 sed 命令的参数中 "代表决定引用参数,不允许参数中的值让shell解释,s代表替换 /后面跟的是被替换的内容,后面的//代表替换后的

移动端文本超出设定行数后省略的方法

因为移动端绝大部分是WebKit内核的浏览器,如果纯粹的要实现文本在超出规定行数后,其余内容省略并加上"...",可以直接使用WebKit私有属性:-webkit-line-clamp来实现 css代码 .box{ overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } html代码 <div c

Shell脚本中利用awk处理大批量数据

一.需求 原始文件A为1.7G的文件,有5列,大约是1700万行的样子.另有2个辅助文件B和C,B.C文件均只有2列.A1和B1相同,A2和C1相同,要提取的数据列为A1.B2.C2.A4.A5,目标文件名为D.txt. 二.思路 2.1在使用awk处理数据之前,考虑使用whileread --done<A.txt的方式来处理数据,但是执行效率太低,并不符合期望. 2.2后来使用awk处理数据,但是必须要解决的问题是传入外部数组或者是将三个文件的数据传入到awk中. 三.解决方式 3.1 使用w

shell 脚本awk的高级应用之

需求: 文本中第一列字符相等时,第二列相加 ,最后输出字符和最后的和(为了方便最后核对,都给了1) 文本如下: cat test.log abc 1 aaa 1 bbb 1 ddd 1 sss 1 iii 1 abc 1 sss 1 ddd 1 ddd 1 ddd 1 ddd 1 bbb 1 bbb 1 bbb 1 bbb 1 bbb 1 思路1: awk把第一列取出,然后排序sort,去重uniq,赋值给变量x,然后遍历x,从文本中grep,然后awk截取第二列并相加,这个思路需要多次awk,

Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysqldump的自带锁表功能.刷新日志.复制等功能 利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用) #!/bin/bash MYSQLDBUSERNAME=root MYSQLDBPASSWORD=password MYSQBASEDIR=/usr/local/mys

SHELL脚本 数学运算、数组、文本处理

数学运算 数组的使用 seq .tr .sort.uniq.cut等命令

shell脚本之利用位置变量添加账户并设置密码

#!/bin/bash adduser "$1" echo " $2" | passwd --stdin "$1" &>/dev/null 原文地址:https://blog.51cto.com/11342825/2423012