我有一个文件:
Srednia ocen Wojciech Zieba: 3.83
Srednia ocen Jakub Pelc: 3.76
Srednia ocen Jan Resiak: 3.90
我想改进命令:
1.
$ awk 'BEGIN{ while( getline $0 < "file") sub($NF,"",$0); print $0}'
Srednia ocen Jan Resiak:
userpc@userpc-desktop:~
2.
$ awk 'BEGIN{ while( getline a < "file") sub($NF,"", a); print a}'
Srednia ocen Jan Resiak: 3.90
userpc@userpc-desktop:~/Pulpit$
我必须通过 getline 来完成。我的示例只是脚本的一部分。我想删除最后一个字段并打印结果:
Srednia ocen Wojciech Zieba:
Srednia ocen Jakub Pelc:
Srednia ocen Jan Resiak:
谢谢您的帮助。
编辑:
但是这种方式不会打印剩余的字段:
$ awk 'BEGIN{ while( getline a < "file") {sub(/[^:]*$/,"",a); print a, $1, $3}}'
Srednia ocen Wojciech Zieba:
Srednia ocen Jakub Pelc:
Srednia ocen Jan Resiak:
bolek@bolek-desktop:~/Pulpit$
此命令打印所有字段:
$ awk 'BEGIN{ while( getline $0 < "file") {sub($NF,"",$0); print $0, $1, $3}}'
Srednia ocen Wojciech Zieba: Srednia Wojciech
Srednia ocen Jakub Pelc: Srednia Jakub
Srednia ocen Jan Resiak: Srednia Jan
bolek@bolek-desktop:~/Pulpit$
如何改进第一个命令?我想首先命令还共享字段上的行。
编辑-1:
我想改进命令:
awk 'BEGIN{ while( getline a < "file") {sub(/[^:]*$/,"",a); print a, $1, $3}}'
我想打印结果:
Srednia ocen Wojciech Zieba: Srednia Wojciech
Srednia ocen Jakub Pelc: Srednia Jakub
Srednia ocen Jan Resiak: Srednia Jan