2013-03-28 93 views
1

我在这里有一些实时的家庭作业。作为尽职调查,我在过去的2.30小时浏览网页并阅读awk教程以找到解决方案,毫无希望。 这里是我想出了行:awk输入文件中所有行的最后一个字段包含至少一个大写字母

AWK '/ [AZ]/{打印$ NF}' < tweedle.txt(Tweedle.txt是一首诗)

电流输出:

Tweedledee 
Tweedledee 
battle; 
Tweedledee 
rattle. 
crow, 
tar-barrel; 
so, 
quarrel. 

预期输出 -last字段与上壳体开始

Tweedledee 
Tweedledee 
Tweedledee 

只是用大写和小写打印最后一个字段。

需要你的专业知识的人。在此先感谢

+1

请考虑编辑您的问题,以包括样本输入,预期输出和当前输出。得到一个有用的解决方案的一半是能够提供一个有意义的问题的定义;-) ..祝你好运! – shellter 2013-03-28 03:07:48

+0

任何其他的想法家伙?命令由faiz指定,thx他btw,不正常工作 – Zerg12 2013-03-28 05:30:44

回答

1

在这里你去:

awk '$NF ~ /[A-Z]/' < tweedle.txt 

这写着:接受其NF场的正则表达式匹配/[A-Z]/所有行。 Awk的默认行为是打印行,这就是我想要的。

如果你想打印只是最后一个字段(你的问题不会使这个非常清楚),其最后一个字段包含至少一个大写的所有行的,

awk '$NF ~ /[A-Z]/ {print $NF}' < tweedle.txt 

顺便说一句,这里的如何我测试这个:

[email protected]:/tmp$ cat tweedle.txt 
a b aBoo 
c D 
a x y 
G 
j h g 
[email protected]:/tmp$ awk '$NF ~ /[A-Z]/ {print $NF}' tweedle.txt 
aBoo 
D 
G 
[email protected]:/tmp$ awk '$NF ~ /[A-Z]/' tweedle.txt 
a b aBoo 
c D 
G 

提供这样的事情会真的让我们更好地理解你的问题。

+0

[root @ serg1a〜]#awk'$ NF〜/ [AZ] /' Zerg12 2013-03-28 03:24:51

+1

我很抱歉,但您需要更清楚。你真正的问题是什么,你可以编辑你的问题,以更好地描述你的输入,输出和你正在运行的确切命令。使用wiki格式使问题尽可能清晰。 – Faiz 2013-03-28 03:28:19

+0

第二个命令打印出所有最后一个字段,不考虑大写情况:[root @ serg1a〜]#awk'$ NF〜/ [A-Z]/{print $ NF}' Zerg12 2013-03-28 03:43:34

1

像这样:

awk '$NF ~ /^[A-Z]/{print $NF}' tweedle.txt 
0

没有看到你的输入文件有很多种可能的解决方案:

awk '$NF~/^[A-Z]/ && $0=$NF' file 

或(从你的 “电流输出”,这条线的工作太):

awk '/[a-z]$/' file 
相关问题