3

我真的不擅长使用 awk,但我知道它对应变操作非常有用。

我有一个格式的文件:

JohnSmith_name    3.4     
KellySears_name   5.7
RonaldBay_name    1.2     
RayShendor_name   2.8

我想读取文件并基本上从真实姓名中剥离 _name 标签并打印该行。我怎样才能使用 awk 做到这一点?

谢谢!

4

4 回答 4

4

你可以sedawk在这种情况下更容易使用,我认为:

$ sed s/_name// file
JohnSmith    3.4     
KellySears   5.7
RonaldBay    1.2     
RayShendor   2.8
于 2013-06-11T00:21:05.007 回答
3

你可以这样做:

awk -F "_name" '{ print $1.$2 }' file
于 2013-06-11T00:29:27.583 回答
3

您可以使用

 awk '{sub("_name",""); print}'

(但是正如 Carl Norum 所说 - sed 可能会更好)

于 2013-06-11T00:23:50.997 回答
2

bash办法:

$ while read col1 col2; do echo -e "${col1%_*}\t$col2"; done < file
JohnSmith   3.4
KellySears  5.7
RonaldBay   1.2
RayShendor  2.8
于 2013-06-11T01:50:08.767 回答