1

ここで家の宿題でリアルタイムの時間を過ごしています。デューデリジェンスとして、私は過去2.30時間Webを閲覧し、awkチュートリアルを読んで解決策を見つけていましたが、絶望的です。これが私が思いついた行です:

awk '/[AZ]/ {print $NF}' < tweedle.txt (Tweedle.txt は詩です)

現在の出力:

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

予期される出力 - 大文字で始まる最後のフィールド

Tweedledee
Tweedledee
Tweedledee

最後のフィールドを大文字と小文字の両方で出力するだけです。

あなたの専門知識が必要です。前もって感謝します

4

3 に答える 3

1

このような:

 awk '$NF ~ /^[A-Z]/{print $NF}' tweedle.txt
于 2013-03-28T05:34:55.520 に答える
1

どうぞ:

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

NFthフィールドが regex と一致するすべての行を受け入れます/[A-Z]/。Awk のデフォルトのアクションは、単に行を印刷することです。それが、あなたがやりたいと思っていることです。

そして、最後のフィールドに少なくとも1つの大文字が含まれているすべての行の最後のフィールドだけを印刷したい場合(あなたの質問ではこれはあまり明確ではありません)、

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

ちなみに、これをテストした方法は次のとおりです。

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

このようなものを提供することで、問題をよりよく理解できるようになります。

于 2013-03-28T03:16:22.087 に答える
0

入力ファイルを表示せずに、多くの可能な解決策があります。

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

または(「現在の出力」から、この行も機能します):

awk '/[a-z]$/' file
于 2013-03-28T11:16:07.300 に答える