Linux学习笔记(二十八)awk

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记(二十八)awk相关的知识,希望对你有一定的参考价值。

head -n2 test.txt|awk -F ‘:‘ ‘{print $1}‘      //文件的前两行,以:分隔,打印第一段
 head -n2 test.txt|awk -F ‘:‘ ‘{print $0}‘     //文件的前两行,以:分隔,打印所有的内容($N就是第N段,0就是所有字段),输出所有字段时可以省略-F
 awk -F ‘:‘ ‘{print $1"#"$2"#"$3"#"$4}‘ test.txt          //以:分隔,取前四段,之间用#分隔
 -F选项省略时,默认以空格或者空白字符为分隔符
 awk -F ‘:‘ ‘{print $1,$2,$3,$4}‘ test.txt          //以:分隔,输出前四段
 awk ‘/oo/‘ test.txt                         //输出包含oo的行
 awk -F ‘:‘ ‘$1 ~/oo/‘ test.txt                //以:分隔,第一段包含oo的行
 awk -F ‘:‘ ‘/root/ {print $1,$3} /test/ {print $2,$4}‘ test.txt          //以:分隔,包含root的行输出第1,3段,包含test的输出第2,4段
 awk -F ‘:‘ ‘$3=="0"‘ /etc/passwd        //以:分隔,第三段是“0” 的行
 awk -F ‘:‘ ‘$3>="500"‘ /etc/passwd          //以:分隔,第三段大于字符500 的行 (数字加上双引号就代表字符而非数字)
 awk -F ‘:‘ ‘$3>=500‘ /etc/passwd               //以:分隔,第三段大于500 的行
 awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ /etc/passwd      //以:分隔,第7段不等于/sbin/nologin 的行

技术分享图片技术分享图片技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片

 awk -F ‘:‘ ‘$3<$4‘ /etc/passwd             //以:分隔,第3段小于第四段 的行
 awk -F ‘:‘ ‘$3>"5" && $3<"7"‘ /etc/passwd         //以:分隔,第3段大于字符5并且小于字符7 的行
 awk -F ‘:‘ ‘$3>1000 || $7=="/bin/bash"‘ /etc/passwd        //以:分隔,第3段=1000或者第七段=/bin/bash 的行
 head -5 /etc/passwd |awk -F ‘:‘ ‘{OFS="#"} {print $1,$3,$4}‘       //前5行以:分隔,取1,3,4段,以#分隔
 awk -F ‘:‘ ‘{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}‘ /etc/passwd      //将分隔符:替换为#,第三段大于1000,则输出1,2,3,4段
  awk -F ‘:‘ ‘{OFS="#"}  $3>1000 {print $1,$2,$3,$4}}‘ /etc/passwd       //将分隔符:替换为#,第三段大于1000,则输出1,2,3,4段
 head -n3 /etc/passwd | awk -F ‘:‘ ‘{print NF}‘        //前三行以:分隔,有几段
 head -n3 /etc/passwd | awk -F ‘:‘ ‘{print NR}‘        //前三行以:分隔,有几行(加行号)
 awk ‘NR>40‘ /etc/passwd               //取行号大于40 的
 awk -F ‘:‘ ‘NR<20 && $1 ~ /roo/‘ /etc/passwd      //以:分隔,前19行中第一段含有roo的
 head -n 3 /etc/passwd |awk -F ‘:‘ ‘$1="root"‘       //以:分隔,将第一段赋值root
 awk -F ‘:‘ ‘{(tot=tot+$3)}; END {print tot}‘ /etc/passwd        //以:分隔,各行第三段相加
 awk -F ‘:‘ ‘{if ($1=="root") {print $0}}‘ /etc/passwd          //以:分隔,如果第一段=root,就输出所有段

技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片
技术分享图片技术分享图片

以上是关于Linux学习笔记(二十八)awk的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记(二十八)多线程

[傅里叶变换及其应用学习笔记] 二十八. 高维移位定理

学习笔记第二十八节课

模式识别(Pattern Recognition)学习笔记(二十八)-- 决策树

Java基础学习笔记二十八 管家婆综合项目

Unity3d - RPG项目学习笔记(二十八)