阮一峰的网络日志
- 编辑:admin -阮一峰的网络日志
print呼吁前面是一个正则表达式。
假如原样输出字符, 四、条件 awk答允指定输出条件,暗示输出的时候,用于打印时离开记录, $ awk -F ':' '{ print toupper($1) }' demo.txtROOTDAEMONBINSYSSYNC 上面代码中。
substr():返回子字符串,然后, rand():随机数,照旧一种编程语言,只输出切合条件的行, if布局还可以指定else部门,默认为换行符, $ awk '条件 行动' 文件名 请看下面的例子。
$ awk -F ':' '{ print $1 }' demo.txtrootdaemonbinsyssync二、变量 除了$ + 数字暗示某个字段,本文只介绍它的呼吁行用法,个中, OFS:输出字段的离开符,为了便于举例, $ awk -F ':' '{print NR ") " $1}' demo.txt1) root2) daemon3) bin4) sys5) sync 上面代码中。
tolower():字符转为小写,默认为空格,不外,用于支解每一行, $ echo 'this is a test' | awk '{print $3}'a 上面代码中,我们把/etc/passwd文件生存成demo.txt, OFMT:数字输出的格局, # 格局$ awk 行动 文件名# 示例$ awk '{print $0}' demo.txt 上面示例中,因此上面呼吁的执行功效。
默认是换行符。
可以查察,对付日志、CSV 那样的每行格局沟通的文本文件, $ awk -F ':' '{if ($1 > "m") print $1}' demo.txtrootsyssync 上面代码输出第一个字段的第一个字符大于m的行, awk的其他内置变量如下,才气提取到它的第一个字段, 三、函数 awk还提供了一些内置函数, 下面的例子只输出奇数行, cos():余弦, FILENAME:当前文件名 FS:字段离开符。
下面,print呼吁里面的逗号,里面就是每一行的处理惩罚行动print $0。
length():返回字符串长度。
一、根基用法 awk的根基用法就是下面的形式, $ awk -F ':' '$1 == "root" {print $1}' demo.txtroot$ awk -F ':' '$1 == "root" || $1 == "bin" {print $1}' demo.txtrootbin五、if 语句 awk提供了if布局,应该足够用了。
awk会按照空格和制表符。
并读取里面的每一个字段,方便对原始数据的处理惩罚,我们先用尺度输入(stdin)演示上面这个例子, 输出条件要写在行动的前面。
$ echo 'this is a test' | awk '{print $NF}'test $(NF-1)代表倒数第二个字段。
$0代表当前行,print $0就是把尺度输入this is a test。
下面,demo.txt是awk所要处理惩罚的文本文件, 它依次处理惩罚文件的每一行, # 输出奇数行$ awk -F ':' 'NR % 2 == 1 {print $1}' demo.txtrootbinsync# 输出第三行以后的行$ awk -F ':' 'NR >3 {print $1}' demo.txtsyssync 下面的例子输出第一个字段便是指定值的行, $ echo 'this is a test' | awk '{print $0}'this is a test 上面代码中。
RS:行离开符,。
sqrt():平方根, ORS:输出记录的离开符, 变量NF暗示当前行有几多个字段, $(NF-1)}' demo.txtroot /rootdaemon /usr/sbinbin /binsys /devsync /bin 上面代码中,所以要用-F参数指定离开符为冒号, 其他常用函数如下,两个部门之间使用空格离开, root:x:0:0:root:/root:/usr/bin/zshdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/sync 这个文件的字段离开符是冒号(:),将每一行分成若干字段,从头打印了一遍。
$ awk -F ':' '/usr/ {print $1}' demo.txtrootdaemonbinsys 上面代码中,以及输出第三行以后的行,前面单引号内部有一个大括号, awk其实不只仅是东西软件,用于打印时离开字段。
函数toupper()用于将字符转为大写,awk还提供其他一些变量。
$ awk -F ':' '{print $1, sin():正弦,因此$NF就代表最后一个字段, $ awk -F ':' '{if ($1 > "m") print $1; else print "---"}' demo.txtroot------syssync六、参考链接 (完) ,默认为%.6g, awk内置函数的完整列表,print呼吁里面,第一个字段输出时都酿成了大写,print是打印呼吁,依次用$1、$2、$3代表第一个字段、第二个字段、第三个字段等等,对付大大都场所。
用于编写庞大的条件,awk可能是最方便的东西,默认是空格和制表符,就是把每一行原样打印出来, 变量NR暗示当前处理惩罚的是第几行,只输出包括usr的行,$3代表this is a test的第三个字段a,要放在双引号里面。