Chinaunix
标题:
如何使用shell获取一列数据的最后三个
[打印本页]
作者:
jamesapple321
时间:
2019-11-19 16:35
标题:
如何使用shell获取一列数据的最后三个
各位好:
请教个问题,现在有一列数据,如何使用shell获取最后三行以外的字段
master-35.jar
master-37.jar
master-38.jar
master-47.jar
master-48.jar
master-49.jar
master-55.jar
master-59.jar
作者:
jzsjm1002
时间:
2019-11-19 17:03
awk '{a[NR]=$0}END{for(;++i<=length(a)-3;)print a[i]}' file
复制代码
作者:
legs
时间:
2019-11-20 08:06
#GNU head
head -n -3 file
#Perl
perl -e'@a=<>;print@a[0..@a-4]' file
作者:
moperyblue
时间:
2019-11-20 11:41
sed '1{$d;N};$!N;$d;P;D'
复制代码
作者:
fengzi321
时间:
2019-12-19 11:46
回复
2#
jzsjm1002
报错呢
feng@ubuntu:~$ awk '{a[NR]=$0}END{for (;++i <= length(a)-3
{print a
}}' A
awk: line 1: illegal reference to array a
作者:
fengzi321
时间:
2019-12-19 11:46
回复
2#
jzsjm1002
作者:
fengzi321
时间:
2019-12-19 11:47
回复
2#
jzsjm1002
报错
feng@ubuntu:~$ awk '{a[NR]=$0}END{for (;++i <= length(a)-3
{print a
}}' A
awk: line 1: illegal reference to array a
作者:
jzsjm1002
时间:
2019-12-19 13:06
回复
7#
fengzi321
print a 打错了a是数组
作者:
fengzi321
时间:
2019-12-19 16:30
回复
8#
jzsjm1002
是不是length(a)有问题?
feng@ubuntu:~$ awk '{a[NR]=$0}END{for(;++i<=length(a)-3
print a
}' A
awk: line 1: illegal reference to array a
作者:
fengzi321
时间:
2019-12-19 16:32
回复
9#
fengzi321
这样子就没什么问题
awk '{a[NR]=$0}END{for (i=1;i<= NR-3;i++){print a
}}' A
作者:
fengzi321
时间:
2019-12-19 16:34
回复
8#
jzsjm1002
显示有问题?我脚本里明明是print a
的,贴进来显示却看不到a
,....
作者:
jzsjm1002
时间:
2019-12-19 16:50
本帖最后由 jzsjm1002 于 2019-12-19 16:55 编辑
回复
11#
fengzi321
a是数组 不能直接用 print a 打印出来
应该用 print a[i]
awk '{a[NR]=$0}END{for(;++i<=length(a)-3;)print a[i]}' file
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2