Linux笔记

计算字符串的长度

方法1:使用expr length
代码如下:

aa="hello"
ll=`expr length $aa` 
echo $ll # 5

expr是在shell中进行表达式求值与字符串操作的命令,值得学习。

方法2:在${}中使用#
代码:

aa="hello"
ll=${#aa}
echo $ll # 5

awk编写脚本并运行

今天第一次知道awk也可以编写脚本!!!awk真的是太强了!
这里简单记录一下怎么编写awk脚本并在命令行里运行。

前言
awk的一般使用情况是使用一行命令来对文件进行处理,将需要处理的命令写在单引号里面,比如下面这条命令:

awk '{print $1}' test.txt # 打印test.txt文件的第一列

当需要对数据进行复杂的处理时,比如要对文件的第1, 2, 3列都进行切分再求和,这个时候需要写很多的代码,写在一行里面会很难看,可读性非常差,而且由于对这3列的操作是一样的,如果写在一行里面就要写许多重复的代码,对于一个优秀的程序员来说,重复代码是见不得的。

因此可以将这些操作封装为一个函数,这样就可以非常方便的对1,2,3列进行处理,并且awk是支持自定义函数的!

具体使用方式
awk的脚本文件后缀是.awk,可以写在里面的代码就是单行命令中单引号里面的代码,有了一个awk脚本后,在命令行里就使用awk -f test.awk命令来运行这个脚本,下面举个例子。

比如要输出test.txt文件的第1,2,3列,可以用的单行命令是awk '{print $1 $2 $3}' test.txt

写成脚本形式的话,就将单引号里面的内容写在test.awk文件中,该文件的内容如下:

{print $1, $2, $3} 

然后在命令行里调用awk -f test.awk test.txt,就可以打印出test.txt文件的第1,2,3列。

awk里的注释
注释符号同shell一样,用井号表示注释(#)。

在awk脚本中自定义函数
自定义函数的格式如下:

function function_name(arg1, arg2, ...)
{
    function body
}

比如计算两个数的最小值:

# 计算最小值
function min(a, b){
    if(a > b){
        return b;
    } else {
        return a;
    }
}

BEGIN {print "min is", min(10,20)}

在命令行中运行awk -f test.awk,会打印

min is 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值