awk,seq,xarg实例使用

Posted topass123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk,seq,xarg实例使用相关的知识,希望对你有一定的参考价值。

[root@localhost awk]# seq 10|xargs -n 2 > file
[root@localhost awk]# seq 10  -1 1|xargs -n 2 > file1
 
xrags -n 2【表示每次批处理的数量为2个,默认的间隔为“ ”】
seq 10 -1 1【表示生成10个数字,逆序输出,步长为1】
 
 
[root@localhost awk]# cat file1 
2 3 
4 5
6 7 
8 9 
1 0
 
[root@localhost awk]# cat file |awk ‘print $1‘
1
3
5
7
9
[root@localhost awk]# awk ‘print NR‘ file file1
1
2
3
4
5
6
7
8
9
10
[root@localhost awk]# awk ‘print NR,FNR‘ file file1
1 1
2 2
3 3
4 4
5 5
6 1
7 2
8 3
9 4
10 5
[root@localhost awk]#
 
[root@localhost awk]# awk ‘NR==FNRa[NR]=$1NR!=FNRprint a[FNR],$2‘ file file1
1 93 75 57 39 1
[root@localhost awk]#
awk的详解:
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
特殊要点:
$0           表示整个当前行
$1           每行第一个字段
NF          字段数量变量
NR          每行的记录号,多文件记录递增
FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
\\t            制表符
\\n           换行符
FS          BEGIN时定义分隔符
RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
~            匹配,与==相比不是精确比较
!~           不匹配,不精确比较
==         等于,必须全部相等,精确比较
!=           不等于,精确比较
&&      逻辑与
||             逻辑或
+            匹配时表示1个或1个以上
/[0-9][0-9]+/   两个或两个以上数字
/[0-9][0-9]*/    一个或一个以上数字
FILENAME 文件名
OFS      输出字段分隔符, 默认也是空格,可以改为制表符等
ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
-F‘[:#/]‘   定义三个分隔符
 
[root@localhost awk]# paste file3 file4
1    9
3    7
5    5
7    3
9    1
[root@localhost awk]# paste file3 file4|tr "\\t" " "
1 9
3 7
5 5
7 3
9 1
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
-d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
-s或--serial  串列进行而非平行处理。
 
 
 

以上是关于awk,seq,xarg实例使用的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本,awk数组之如何处理多个文件。

linux下使用awk xargs批量杀进程

使用 xargs 和 awk 处理多个文件并将处理后的数据写入单独的文件

linux--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

awk 使用实例

第8天压缩 xarges sed命令 yum配置 rpm包文件修复