awk ✀{print NR "|" $0 }✀ $1>$2 ;什么意思呢?

2025-04-24 23:48:47
推荐回答(2个)
回答1:

[ :]+这个是正则表达式,+表示一个或多个,这里就表示一个或多个空格或冒号
ps:
1。内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk -F: '{print $1,$5}' test将打印以冒号为分隔符的第一,第五列的内容。
2。可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[ :\t]' '{print $1,$3}' test,表示以空格、冒号和tab作为分隔符。
下面我们来举个例子:
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]" '{print $3}'
192.168.55.229
[root@master ~]#
[root@master ~]# echo "inet addr:192.168.55.229 Bcast:192.168.55.255 Mask:255.255.255.0"|awk -F"[ :]"'{print $2}'
addr
[root@master ~]#

回答2:

awk '{print NR "|" $0 }' $1>$2

$1和$2分别表示一个文件,通过shell脚本参数或函数参数传入(分别是第一个参数和第二个参数)。

NR是awk内置变量,Number of Records的缩写,表示当前记录条数(文件行数);

$0表示当前行的所有内容。

 

所以,总的意思就是,在$1文件的所有行前面加上行号并以 | 符号与行内容分隔,输出结果重定向到新的文件$2中。